查找:
regexp1 **sometext** regexp2
替换为:
newregexp1 **sometext** newregexp2
在此,我不希望修改**sometext**
也就是说,如果我在文件中有以下行:
Hello somebody! Have a good day.
Hello somebodyelse! Have a good day.
我希望输出为:
Bye somebody! Good night.
Bye somebodyelse! Good night.
我的正则表达式搜索将采用以下形式:
Hello .*! Have a good day.
如何将\1
关键字与sed
(或任何linux工具)一起使用来实现此目的。
请帮我解释实际的命令语法。
另外,如果你有办法在记事本++中这样做,请告诉我。
感谢您的帮助!
答案 0 :(得分:1)
尝试:
sed 's/Hello \(.*\)! Have a good day./Bye \1! Good night./' MyInputFile > MyOutputFile
答案 1 :(得分:0)
echo "Hello somebody! Have a good day" | sed -e 's/Hello \(.*\) Have a good day/Bye \1 Good night./'
但是我对正则表达式如何工作有一些误解,因为你在源文本中使用了“regexp1”。正则表达式是模式,它描述字符串,而不是字符串本身。