表形式のファイルで perl を使用して 3 つの列を削除しようとしています。
入力ファイル:
A B C D
予期される/新しいファイル:
A B C
他の質問で、1列だけを削除する方法を見ました。答えは次のとおりです。
perl.exe -na -e "print qq{$F[3]\n}" < input
これを書き直して 3 つの列を削除するにはどうすればよいでしょうか?
ありがとう
表形式のファイルで perl を使用して 3 つの列を削除しようとしています。
入力ファイル:
A B C D
予期される/新しいファイル:
A B C
他の質問で、1列だけを削除する方法を見ました。答えは次のとおりです。
perl.exe -na -e "print qq{$F[3]\n}" < input
これを書き直して 3 つの列を削除するにはどうすればよいでしょうか?
ありがとう
awk モードで perl を使用します。
$ cat -T f1
a^Ib^Ic^Id^Ie^If
a^Ib^Ic^Id^Ie^If
a^Ib^Ic^Id^Ie^If
$ perl -F'\t' -lane 'print $F[0],"\t",$F[1],"\t",$F[2]' input
a b c
a b c
a b c
またはスペース区切り:
$ perl -F'\t' -lane 'print qq{@F[0..2]}' input
a b c
a b c
a b c
または awk でタブ区切りで最初の 3 列を印刷するには
$ awk 'BEGIN{OFS="\t"}{print $1, $2, $3}' input
a b c
a b c
a b c
perl -lane "pop @F; print qq(@F)" input