[英]Linux command within AWK
我正在解析CSV文件,并希望在末尾添加2列的md5sum。
eval $(awk -F, -v OFS=", " 'NR==1{print $0,"FILENAME,DATE_LOADED,TEST";next}{ print $0 ", "ENVIRON["FILE"]", "ENVIRON["ISODATE"]", " $5$7 }' $FILE > $NAME"_ready.csv")
我已经尝试过了,但是没有成功
eval $(awk -F, -v OFS=", " 'NR==1{print $0,"FILENAME,DATE_LOADED,TEST";next}{ print $0 ", "ENVIRON["FILE"]", "ENVIRON["ISODATE"]", " $(md5 -s $5$7) }' $FILE > $NAME"_ready.csv")
要在awk中运行命令并捕获其输出,请使用cmd | getline
cmd | getline
。 以下应该适合您的情况
awk -F, -v OFS=", " 'NR==1 {
print $0,"FILENAME,DATE_LOADED,TEST";
next
}
{
line=$0
cmd="md5 -s "$5$7
cmd | getline
md5sum=$0
print line, ENVIRON["FILE"], ENVIRON["ISODATE"], md5sum
}' $FILE > $NAME"_ready.csv"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.