Shell中使用cut命令删除字符

5
在 grep 和 cut 下面的当前代码输出为 51315123&category_id,我需要删除 &category_id,可以使用cut来实现吗?
... | tr '?' '\n' | grep "^recipient_dvd_id=" | cut -d '=' -f 2 >> dvdIDs.txt

1
grepcut和可能的另一个cut的组合应该简化为单个命令,可以是sed或者它更强大的兄弟之一 - awkperlpython(或您选择的其他脚本语言)。除此之外,如果要处理的数据量开始达到几千兆字节的范围,多个管道操作开始成为瓶颈。 - Jonathan Leffler
2个回答

11

是的,我认为是这样。

... | cut -d '&' -f 1

2
如果您愿意使用AWK:
... | tr '?' '\n' | awk -F'[=&]' '/^recipient_dvd_id=/ {print $2}' >> dvdIDs.txt

AWK处理正则表达式和分割字段,本例中使用'='和'&'作为字段分隔符,并打印第二列。否则,您需要使用第二个cut语句。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接