在sed替换中保留多个字符串
输入:在sed替换中保留多个字符串,sed,Sed,输入: These are some numbers aklö0/4:asfasd;assdf...asf8/8asdfklöjsdfv7/7asdf8/6 sdf 5/5 asdfasdf3/3 asdf 2/2 asdf7/7asfasdf:::::::7/6;;;;;;6/6asdf9/9......alright These are some numbers 0/4 8/8 7/7 8/6 5/5 3/3 2/2 7/7 7/6 6/6 9/9 alright sed命令应用于上述
These are some numbers aklö0/4:asfasd;assdf...asf8/8asdfklöjsdfv7/7asdf8/6 sdf 5/5 asdfasdf3/3 asdf 2/2 asdf7/7asfasdf:::::::7/6;;;;;;6/6asdf9/9......alright
These are some numbers 0/4 8/8 7/7 8/6 5/5 3/3 2/2 7/7 7/6 6/6 9/9 alright
sed命令应用于上述输入:
sed 's/\(.\/.\).*\(.\/.\).*\(.\/.\).*\(.\/.\).*\(.\/.\).*\(.\/.\).*\(.\/.\).*\(.\/.\).*\(.\/.\).*\(.\/.\).*\(.\/.\).*/\1\t\2\t\3\t\4\t\5\t\6\t\7\t\8\t\9\t\10\t\11/g' infile > outfile
预期输出:
These are some numbers aklö0/4:asfasd;assdf...asf8/8asdfklöjsdfv7/7asdf8/6 sdf 5/5 asdfasdf3/3 asdf 2/2 asdf7/7asfasdf:::::::7/6;;;;;;6/6asdf9/9......alright
These are some numbers 0/4 8/8 7/7 8/6 5/5 3/3 2/2 7/7 7/6 6/6 9/9 alright
遇到的问题:
但它用0/40和8/81替换了最后两个。
就像它只能记住9件事一样 正确。见:
替换项可以包含\n(n是从1到9的数字,
包括)参考,指的是匹配的
包含在第n个(及其匹配项)之间。此外,
替换可以包含引用
模式空间的整个匹配部分。最后,作为一个GNU成员
扩展名,可以包含由反斜杠和
字母L、L、U、U或E中的一个
对。见:
替换项可以包含\n(n是从1到9的数字,
包括)参考,指的是匹配的
包含在第n个(及其匹配项)之间。此外,
替换可以包含引用
模式空间的整个匹配部分。最后,作为一个GNU成员
扩展名,可以包含由反斜杠和
字母L、L、U、U或E中的一个
对。见:
替换项可以包含\n(n是从1到9的数字,
包括)参考,指的是匹配的
包含在第n个(及其匹配项)之间。此外,
替换可以包含引用
模式空间的整个匹配部分。最后,作为一个GNU成员
扩展名,可以包含由反斜杠和
字母L、L、U、U或E中的一个
对。见:
替换项可以包含\n(n是从1到9的数字,
包括)参考,指的是匹配的
包含在第n个(及其匹配项)之间。此外,
替换可以包含引用
模式空间的整个匹配部分。最后,作为一个GNU成员
扩展名,可以包含由反斜杠和
字母L、L、U、U或E中的一个
如果需要9个以上的反向引用,请使用多个替换命令。''sed's/(.\/)..'.\/。'.\/)/\1\2/g'''.'告诉我:''.'这些是一些数字0/09/9,好吧',所以我在下次替换之前丢失了所有内容。如果需要9个以上的反向引用,请使用多个替换命令。''sed's/(.\/)..\/。。。'.\/。。。'/\1\2/g'')给了我以下信息:''这些是一些数字0/09/9,好吧',所以我在下次替换之前丢失了所有内容。如果需要9个以上的反向引用,请使用多个替换命令。''sed's/(.\/).*(.\/)/\1\2/g'''给我这个:'这些是一些数字0/09/9,好吧',所以我在下次替换之前丢失了所有的东西。如果你想要超过9个反向引用,请使用多个替换命令。'sed's/(.\/).*(.\/)。\1\2/g''给我这个:'这些是一些数字0/09/9,好吧',所以我在下次替换之前丢失了所有的东西。