簡體   English   中英

使用bash和awk打印到新文檔中的特定列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM