【发布时间】:2015-07-15 18:22:40
【问题描述】:
我有一个脚本
awk -F, '$4!~/ABCDEF/{print $0}' File_Name.csv>New_File_Name.csv
这是一个脚本,如果第 19 列(csv 中的 D 列)中的单元格包含 ABCDEF,它将删除 csv 文件中的整行。 在这里我手动给出文件名和新文件名。我必须选择一个目录中的所有文件,然后将该文件导出到另一个目录。我该怎么做?
【问题讨论】:
我有一个脚本
awk -F, '$4!~/ABCDEF/{print $0}' File_Name.csv>New_File_Name.csv
这是一个脚本,如果第 19 列(csv 中的 D 列)中的单元格包含 ABCDEF,它将删除 csv 文件中的整行。 在这里我手动给出文件名和新文件名。我必须选择一个目录中的所有文件,然后将该文件导出到另一个目录。我该怎么做?
【问题讨论】:
您可以在包含所有*csv 文件的目录中运行此脚本:
for f in *.csv; do
awk -F, '!($4 ~ /ABCDEF/)' "$f" > "/dest/dir/$f"
done
【讨论】:
$'do\r'' '/Check.sh: line 1: for f in *.csv;做
为directory 和another_directory 设置适当的值,然后试试这个:
for fname in $directory/*.csv; do awk -F, '$4!~/ABCDEF/{print $0}' $fname > $another_directory/`basename $fname`; done
你也可以像这样把它放到一个脚本文件中(让它成为script.sh):
directory=$1
another_directory=$2
for fname in $directory/*.csv; do awk -F, '$4!~/ABCDEF/{print $0}' $fname > $another_directory/`basename $fname`; done
使其可执行并像这样调用:
./script.sh path_to_source_directory path_to_destination_directory
【讨论】:
*.csv 文件,脚本在该目录上没有任何错误。