次のコマンドがあります。
(head -1 invoice.txt && sed '1d' invoice.txt |sort -rn -k4,4) |column -ts $'\t' |less -S
head -1
最初の行を印刷します。sed "1d'
柔らかいものが混乱しないように、最初の行を削除します。sort -rn -k4,4
私のファイルを4番目の列にのみ並べ替えるcolumn -ts $'\t'
タブでファイルを分割less -S
端末から印刷する
最初、4番目、最後の列だけを印刷したいです。小さなファイルですが、このテンプレートを使用する14個の列を持つファイルと21個の列を持つファイルがあります。
現在の出力をパイプするためにcut
、awk
または他のコマンドを使用する必要があるかどうかはわかりません。print
ベストアンサー1
最初、4番目、および最後のタブで区切られた列のみを表示し、2番目の列のデータはヘッダーを無視して数値でソートしようとします。
awk -F '\t' 'BEGIN { OFS=FS } { print $1, $4, $NF }' invoice.txt >tmpfile
{
head -n 1 tmpfile
sed '1d' tmpfile | sort -k 2,2rn
} | less -S
あるいは、一時ファイルを無視してすべてをawk
複合コマンドにパイプすることもできます。必要に応じて前に{ ...; }
追加してください。column -ts $'\t'
less -S