如果我想用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'