[英]Using bash and awk to print to a specific column in a new document
我正在嘗試使用bash和awk以及嵌套的for循環將數據打印到彼此相鄰的列中。 到目前為止,這就是我所擁有的:
for k in {1..147..3}
do
for i in "52" "64" "60" "70" "74"
do
awk -v x="${i}" -F, 'match ($0,x) { print $k }' all.csv > final.csv
done
done
echo "script has run"
我需要將信息打印到新文件的k列中。但是,這不起作用。 所以在CSV文件中的數據是這樣的:
52,9/05,6109
52,9/06,6119
64,9/05,7382
64,9/06,7392
64,9/07,3382
60,9/06,3829
...
我想要這樣的輸出:
52,9/05,6109,64,9/05,7382,60,9/06,3829
52,9/06,6119,64,9/06,7392
,,,64,9/07,3382
基本上,第一列的所有52s,第四列的64s,第七列的60s
代替print $k
,使用printf "%s,",$k
。
printf
是許多語言通用的打印格式化程序功能。 %s
告訴它第一個參數應該是字符串。
請注意, awk
不會從外殼中獲取$k
,因此您需要添加-vk=$k
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.