替换linux命令文件中的未知行
我正在尝试使用LinuxBash更改文本文件中带有模式的行。 我试过sed命令:替换linux命令文件中的未知行,linux,bash,sed,Linux,Bash,Sed,我正在尝试使用LinuxBash更改文本文件中带有模式的行。 我试过sed命令: sed -i 's/old/new/' < file.txt 这个命令行的问题是我必须指定确切的旧单词。我想更改数千个旧单词有如下模式的文件:old1、old2、old3、…old10000 我想将所有文件中的oldxxx更改为old1 有什么办法吗 您可以使用以下内容: sed -i 's/old[0-9]\{1,\}(/old1(/' file.txt 这将匹配old,后跟一个或多个数字和a,并将其替
sed -i 's/old/new/' < file.txt
这个命令行的问题是我必须指定确切的旧单词。我想更改数千个旧单词有如下模式的文件:old1、old2、old3、…old10000
我想将所有文件中的oldxxx更改为old1
有什么办法吗 您可以使用以下内容:
sed -i 's/old[0-9]\{1,\}(/old1(/' file.txt
这将匹配old,后跟一个或多个数字和a,并将其替换为old1
如果您的sed版本支持扩展正则表达式,则可以使用:
sed -r -i 's/old[0-9]+\(/old1(/' file.txt
相反,它做同样的事情。在某些版本的sed上,使用-E开关代替-r
如果在同一行上有多个oldXX模式实例,您可能还需要使用g修饰符s/../../…/g进行全局替换。那么您要更改的内容是old,后跟一些数字?你想把它改成什么?我想一直把oldxx改成old1@KJohn您应该更新您的问题,以包括一些示例模式以及它的预期输出。这将有助于得到更好、更清晰的答案。