我有这样的bash/awk的代码来处理主机如何替换,只是喜欢在AWK
$ echo 'the.pattern to change' | awk '{sub(/the./,"")}{print $1}'
pattern
我需要通过Perl来代替AWK在Perl打印列。 任何想法如何用perl oneliner替换声明的第二部分?
我有这样的bash/awk的代码来处理主机如何替换,只是喜欢在AWK
$ echo 'the.pattern to change' | awk '{sub(/the./,"")}{print $1}'
pattern
我需要通过Perl来代替AWK在Perl打印列。 任何想法如何用perl oneliner替换声明的第二部分?
您可以使用带分隔功能的Perl一行。
我们需要使用the.
和space
来分割字符。所以你可以在分割函数中使用RegEx。
echo 'the.pattern to change' | perl -aF"/the\.|\s/" -ne 'print $F[1],"\n";'
-a
自动拆分模式
echo 'the.pattern to change' | perl -ane '$F[0]=~s/the\.//; print $F[0],"\n";'
@downvoter添加评论 – mkHun
这与您可以通过Perl访问'awk'的方式非常接近。我也不明白downvote。 – reinierpost
@reinierpost我低估了,因为它根本不会做同样的事情。达到相同的结果并不意味着命令执行相同的操作。 OP不分割'the.'上的字段,它的工作方式与awk命令完全不同。 awk等于这个将是'awk -F'the \。| \ s''{print $ 1}''。对OP更接近的perl命令将是'perl -l's/the \ .//; print +(split/\ s + /)[0]' – 123
为什么你需要用Perl来代替AWK? – 123