根据条件将值附加到列

根据条件将值附加到列

我有一个 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等来引用列并根据以下内容进行检查:$2awk

输出:

1,2,3,4,True
1,2,3,4,False
1,2,3,4,True
1,2,3,4,False

不支持转义逗号(例如\,或使用引号)。

相关内容