我有一个 csv 文件file.csv
。
Action,Type,Name,Destination
Add,File,File1.war,path
Add,File,File2.properties,path
Add,Directory,File3.war,path
我已将此文件作为 while 循环的输入,它会检查源位置和目标位置中每一行是否存在文件,如果条件为真,则我需要将值返回到名为备注和的新列添加成功或失败的备注。
while IFS="," read f1 f2 f3 f4
do
statements
done < file.csv.
我想根据每行的输出在第五列中附加一个值。我需要的输出有点类似于这个
Action,Type,Name,Destination,Remarks
Add,File,File1.war,path,Success
Add,File,File2.properties,path,Fail
Add,Directory,File3.war,path,Fail
答案1
一些解决方案awk
基于您提供给我们的一些信息,NR % 2
并由您替换一些无意义的检查(→偶数行号):
awk 'BEGIN {OFS=FS=","} {print $0,(NR % 2 ? "True": "False")}' << 'EOF'
1,2,3,4
1,2,3,4
1,2,3,4
1,2,3,4
EOF
在脚本中使用$1
等来引用列并根据以下内容进行检查:$2
awk
输出:
1,2,3,4,True
1,2,3,4,False
1,2,3,4,True
1,2,3,4,False
不支持转义逗号(例如\,
或使用引号)。