フィールドを特定の形式で印刷したい、入力:
col1|col2|col3|col4
私はcat file | cut -d '|' -f 3,1,4
出力を使用しました:
col1|col3|col4
しかし、私の期待される出力は次のとおりです。
col3|col1|col4
誰かがこれを手伝ってくれますか?
からman cut
:
選択された入力は、読み取られたのと同じ順序で書き込まれ、1 回だけ書き込まれます。
やったほうがいい:
$ awk -F'|' -vOFS='|' '{print $3,$1,$4}' <<< "col1|col2|col3|col4"
col3|col1|col4
awk は優れていますが、ここに perl ソリューションがあります。
perl -F"\|" -ane 'print join "|",@F[2,0,3]'
テスト済み:
> echo "col1|col2|col3|col4" | perl -F"\|" -ane 'print join "|",@F[2,0,3]'
col3|col1|col4