如何使用shell脚本对选定的和未选定的csv文件执行不同的语句

3zwtqj6y  于 2022-12-19  发布在  Shell
关注(0)|答案(1)|浏览(144)

目前,我正在做一些 shell 脚本任务。我在学习阶段。我的要求是我有很多的csv文件在一个目录的例子100。在这100个csv文件,无论文件名开始登录我需要分割数据和复制到不同的文件夹。其余的csv不开始登录作为前缀我需要复制到不同的文件夹没有分割数据。
示例:usr/我的配置文件/测试01.csv、usr/我的配置文件/登录名.csv
预期产出:test01.csv -复制到其他文件夹

login.csv - Split the data and copy to different folder.

目前,我已经写了下面的代码,但它并不像预期的那样工作。有人可以帮助这里修复这个脚本。

#!/bin/bash

count = 2
FILENAME = test
for dir in /usr/myprofiles/*.csv
do
  if[-f $*Login*.csv]
  then
        split -l $count $login.csv xyz
        n=1
        for f in xyz*             
        do    
             cat $f >> /usr/myprofiles/test/$FILENAME${n}   
             rm $f                  
      ((n++))                 
        done
  fi
  else
    cp "$dir" "$usr/myprofiles/test/$FILENAME$
done

在意外标记“”附近获取语法错误,然后””。

3mpgtkmj

3mpgtkmj1#

此代码段存在问题:

if[-f $*Login*.csv]
then
    split -l $count $login.csv xyz

上面显示了对第一个“for”语句的误解(在列出的目录中没有隐式的“cd”)。对于“login”文件的正确位置,没有路径说明。它正在脚本启动目录中查找这些文件。“login”引用不包括完整路径。
所以你要么

  • 将路径添加到变量reference/usage,
  • 重新定义变数以包含该路径前置词,或
  • 执行cd到目录

以便定位和处理实际的登录文件。

相关问题