如何使用unix替换文件中某个字符串后的文本?
我正在尝试搜索字符串并替换其旁边的文本。。我知道SED可以用来搜索字符串并替换它 下面给出的例子 输入文件:如何使用unix替换文件中某个字符串后的文本?,unix,sed,str-replace,Unix,Sed,Str Replace,我正在尝试搜索字符串并替换其旁边的文本。。我知道SED可以用来搜索字符串并替换它 下面给出的例子 输入文件: Some text Random option:"To Replace Text" 输出文件: Some text Random option:"Replaced Text" 我试过下面的方法 grep'option:'inputfile.txt>temp.txt——因此这将为tempfile提供带有'option:'的行 $toReplace=cut-c 17-32 tempf
Some text
Random option:"To Replace Text"
输出文件:
Some text
Random option:"Replaced Text"
我试过下面的方法
grep'option:'inputfile.txt>temp.txt——因此这将为tempfile提供带有'option:'的行
$toReplace=cut-c 17-32 tempfile——这提供了“替换文本”
sed的/$toReplace/$tobereplace/'inputfile.txt>outfile.txt
我正在从命令行发送$tobereplace文本
这是可行的,但我不想使用cut命令,因为实际需求中位置可能会发生变化。这一行可能会帮助您:
sed 's/\(Random option:"\)[^"]*/\1ReplacedTxt/' file
您能补充一下您尝试过的内容以及您面临的问题吗?您是否可以补充关于必须执行更换的规则的解释?例如,有多种方法可以做到这一点。。一种方法是搜索并替换整行..不,sed不能用于搜索并替换字符串。sed可用于搜索regexp并将其替换为包含反向引用的字符串,如果您希望它表现为真正使用字符串,则需要识别并替换所有元字符(regexp、delimiter和backreference-请参阅),但您最好只使用理解字符串的工具,例如,awk。您的问题将澄清您的要求,并提供一个。鉴于“随机选项”和/或“RelacedTxt”的不同值,该问题将以各种方式失败。