我正在尝试在列表文件中删除带有perl的三列。
输入文件:
A B C D
预期/新文件:
A B C
我在其他问题中看到如何只删除一列,答案是:
perl.exe -na -e "print qq{$F[3]\n}" < input
我怎样才能重写这个以删除三列?
由于
答案 0 :(得分:1)
这适合你吗?
perl.exe -na -e "print qq{@F[0..2]\n}" < input > newfile
答案 1 :(得分: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中以制表符分隔
$ awk 'BEGIN{OFS="\t"}{print $1, $2, $3}' input
a b c
a b c
a b c
答案 2 :(得分:1)
perl -lane "pop @F; print qq(@F)" input
答案 3 :(得分:0)
这是另一个选项(Perl v5.14 +):
perl -lne "print s/.+\K\s+\S$//r" inFile