Perl 如何删除一行中的尾随字符
我有一个包含模式的文件,如图所示:Perl 如何删除一行中的尾随字符,perl,sed,Perl,Sed,我有一个包含模式的文件,如图所示: a0 b00 c000 d0000000 e00 f00 如何编写perl oneliner或sed命令以获得以下输出: a b c d e f 我的审判: sed -i 's/0*$//g' filename.txt 试试这个: sed -r 's/(.).*/\1/' File 仅打印每行的第一个字符。这是与perl等效的字符(就地替换): 如果你好奇的话,awk: awk 'BEGIN{FS=""}{print $1}' file 您的行中很可
a0
b00
c000
d0000000
e00
f00
如何编写perl oneliner或sed命令以获得以下输出:
a
b
c
d
e
f
我的审判:
sed -i 's/0*$//g' filename.txt
试试这个:
sed -r 's/(.).*/\1/' File
仅打印每行的第一个字符。这是与
perl
等效的字符(就地替换):
如果你好奇的话,awk
:
awk 'BEGIN{FS=""}{print $1}' file
您的行中很可能有尾随空格,请尝试使用此sed oneliner:
sed 's/0*\s*$//' file
请注意,g
标志不是必需的。使用perl的一种方法:
perl -F"" -alne 'print $F[0]' file
我对你的命令没有任何异议。如果你的命令失败了,我猜问题出在别处。您的文件是否包含DOS行尾?查看使用
dos2unix
转换是否有帮助。abc000
的结果必须是什么?在最多只能匹配一次的匹配中,可能不需要全局标志g
。
perl -F"" -alne 'print $F[0]' file