-2

表形式のファイルで perl を使用して 3 つの列を削除しようとしています。

入力ファイル:

A B C D

予期される/新しいファイル:

A B C

他の質問で、1列だけを削除する方法を見ました。答えは次のとおりです。

perl.exe -na -e "print qq{$F[3]\n}" < input

これを書き直して 3 つの列を削除するにはどうすればよいでしょうか?

ありがとう

4

4 に答える 4

1

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
于 2013-10-02T09:14:45.213 に答える
1
perl -lane "pop @F; print qq(@F)" input
于 2013-10-02T10:53:57.217 に答える