【发布时间】:2021-08-15 22:02:07
【问题描述】:
我有多个文件,其中一个文件有 4 行,如下所示
2345,abdgdhf,......,12879
6354, kfsjgdh,.....,"fac
74573,khskdd,......,5663
gffhf,gfgfhfh,......,7675
我想将第一个字段不是数字的行或最后一个字段的第一个字符引用到另一个文件中。预期的输出应该是一个包含如下两行的文件
6354, kfsjgdh,.....,"fac
gffhf,gfgfhfh,......,7675
下面的命令将打印第一个字段不是数字的行
for f in *.csv; do
awk -F "," '(/^[^0-9]/) {print }' "$f" > ./bad/"$f"
done
输出将是
gffhf,gfgfhfh,......,7675
下面的命令会给我最后一个字段的第一个字符
awk -F "," '{print ($(NF))}' <file> |sed 's/\(.\{1\}\).*/\1/'
输出将是
1
"
5
7
我不知道如何将此行合并到我的 for 循环中,并添加一个条件以仅抓取带有引号的行作为最后一个字段的第一个字符,以便在预期输出中具有第一行 6354, kfsjgdh,.....,"fac。
【问题讨论】: