sed:是否有一个选项可以替换每行匹配的第n次和第m次出现?
我想我是在问有关图案标志的问题 我熟悉全局模式标志“g”sed:是否有一个选项可以替换每行匹配的第n次和第m次出现?,sed,string-substitution,Sed,String Substitution,我想我是在问有关图案标志的问题 我熟悉全局模式标志“g” sed's/pattern/sub/g' 我知道我可以用一个数字来代替匹配的第n次出现 sed's/pattern/sub/2' 但是假设我想替换一条线上的第n个和第m个匹配 示例: 删除以下字符串的第3个和第5个单词 输入:“一二三四五六” 输出:“一二四六”这可能适合您(GNU使用): 这将删除第五个和第三个非间隔字符,然后是可能的间隔字符组 注意:移除是反向的,即5然后3,这样之前的移除不会影响下一个。对于给定的样本,您可以使用ec
sed's/pattern/sub/g'
我知道我可以用一个数字来代替匹配的第n次出现
sed's/pattern/sub/2'
但是假设我想替换一条线上的第n个和第m个匹配
示例:
删除以下字符串的第3个和第5个单词
输入:“一二三四五六”
输出:“一二四六”这可能适合您(GNU使用):
这将删除第五个和第三个非间隔字符,然后是可能的间隔字符组
注意:移除是反向的,即5然后3,这样之前的移除不会影响下一个。对于给定的样本,您可以使用
echo“一二三四五六”| cut-d'-f1-2,4,6-
。。。(请注意,您的措辞与样本不匹配)。。。使用sed
可以使用多个子sed's/pattern/sub/2';s/pattern/sub/3
但必须小心,第二个子中的3
实际上是4th
,因为第一个子清除了一个模式
我修复了我的样本
sed -r 's/\S+\s*//5;s///3' file