可以在unix cut命令中使用string作为分隔符吗?

如果我想用string作为分隔符来剪切文本列表,那可能吗? 例如,我有一个目录,其中的shell脚本列表调用相同的Perl脚本说

abc.pl 

所以当我这样做

 $grep abc.pl * 

在那个目录下,它给了我下面的结果

 xyz.sh: abc.pl 1 2 xyz2.sh: abc.pl 2 mno.sh: abc.pl 3 pqr.sh: abc.pl 4 5 

我基本上想要“abc.pl”之后的所有输出(查看哪些范围参数正在传递给perl)

当我尝试

 $grep abc.pl * | cut -d'abc.pl' -f2 

要么

 $grep abc.pl * | cut -d'abc\.pl' -f2 

它给我

 cut: invalid delimiter 

当我看到男人切割它说

delim可以是多字节字符。

我在做什么/在这里解释错误?

当我阅读man for cut时,说明… delim可以是多字节字符。

多字节,但只有一个字符,而不是一个字符串。

 canti:~$ ll | cut --delimiter="delim" -f 1,2 cut: the delimiter must be a single character Try `cut --help' for more information. canti:~$ cut --version cut (GNU coreutils) 5.97 

您只能将输出分隔符指定为字符串(在这种情况下无效):

  --output-delimiter=STRING use STRING as the output delimiter the default is to use the input delimiter 

为什么不使用grep abc.pl | awk '{print $3, $4}' grep abc.pl | awk '{print $3, $4}'

尝试使用这个。

 $grep abc.pl * | awk -F 'abc.pl' '{print $2}' 

-F fs – 字段分隔符fs使用fs作为输入字段分隔符(FS预定义变量的值)。

$ grep abc.pl * | 切-d“'-f3-999

在这种情况下,只需使用空格字符作为分隔符。

或者你可以尝试例如Ruby:

 grep abc.pl * | ruby -ne 'p $_.chomp.split("abc.pl").last'