可以说我有
apples bananas oranges pomelos oranges
香蕉和柚子是不同的绳子。
我使用,它匹配该行的sed 's/apples.*oranges/applesandfriends/'
第二个。oranges
如何控制oranges
匹配哪个出现?
我得到的结果是
applesandfriends
我想要的结果是
applesandfriends pomelos oranges
答案1
使用sed
,用第 n 个关键字(橙色)替换特殊字符,然后执行匹配直到该字符:
foo="apples bananas oranges pomelos oranges "
echo $foo | sed 's/oranges/#/1' | sed 's/apples.*#/applesandfriends/'
输出:
applesandfriends pomelos oranges
答案2
我通过删除文件中第一次出现的橙色使用了以下方法
perl -pne "s/ /\n/g" o.txt|sed '/^$/d'| sed '0,/oranges/s/oranges//g'| sed '/^$/d'| perl -pne "s/\n/ /g"| sed "s/apples.*bananas/applesandfriends/g"
输出
applesandfriends pomelos oranges