0

ネストされた for ループと一緒に bash と awk を使用して、データを隣り合わせの列に出力しようとしています。これまでのところ、これは私が持っているものです:

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

基本的に、最初の列のすべての 52、4 列目の 64、7 列目の 60 です。

4

1 に答える 1

1

の代わりにprint $k、 を使用しますprintf "%s,",$k

printf多くの言語に共通の印刷フォーマッタ関数です。%s最初の引数が文字列であることを示します。

awkはシェルから取得されないため、$k追加する必要があることに注意してください-v k=$k

于 2013-10-17T14:50:06.387 に答える