Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用unix替换文件中某个字符串后的文本?_Unix_Sed_Str Replace - Fatal编程技术网

如何使用unix替换文件中某个字符串后的文本?

如何使用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

我正在尝试搜索字符串并替换其旁边的文本。。我知道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 tempfile——这提供了“替换文本”

sed的/$toReplace/$tobereplace/'inputfile.txt>outfile.txt

我正在从命令行发送$tobereplace文本


这是可行的,但我不想使用cut命令,因为实际需求中位置可能会发生变化。

这一行可能会帮助您:

sed 's/\(Random option:"\)[^"]*/\1ReplacedTxt/' file

您能补充一下您尝试过的内容以及您面临的问题吗?您是否可以补充关于必须执行更换的规则的解释?例如,有多种方法可以做到这一点。。一种方法是搜索并替换整行..不,sed不能用于搜索并替换字符串。sed可用于搜索regexp并将其替换为包含反向引用的字符串,如果您希望它表现为真正使用字符串,则需要识别并替换所有元字符(regexp、delimiter和backreference-请参阅),但您最好只使用理解字符串的工具,例如,awk。您的问题将澄清您的要求,并提供一个。鉴于“随机选项”和/或“RelacedTxt”的不同值,该问题将以各种方式失败。