我有一个|分隔文件并希望替换第 2、4、6、7 列日期从 20200929 到 20201007。
文件:e.lst
1|20200929|mni|20200929|pqr|20200929|20200929
2|20200929|mni|20200929|abc|20200929|20200929
3|20200929|mni|20200929|lmn|20200929|20200929
4|20200929|mni|20200929|stu|20200929|20200929
我尝试的命令适用于 2 列。
awk -F\| '{OFS=FS}$2=20201007, $4=20201007 {print}' e.lst > ne.lst
但是当我向其中添加更多列时,相同的命令会出现语法错误。
awk -F\| '{OFS=FS}$2=20201007, $4=20201007, $6=20201007 {print}' e.lst > ne.lst
^syntax error
最佳答案
您可以使用此 awk
将相同的值分配给单个表达式中的多个列:
awk 'BEGIN {FS=OFS="|"} { $2=$4=$6=$7=20201007 } 1' e.lst > ne.lst
1|20201007|mni|20201007|pqr|20201007|20201007
2|20201007|mni|20201007|abc|20201007|20201007
3|20201007|mni|20201007|lmn|20201007|20201007
4|20201007|mni|20201007|stu|20201007|20201007
关于unix - 在unix中使用AWK替换 "|"单独文件中4列的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64963111/