sed在匹配后追加文本
我正在编写一个shell脚本,以便能够在文件中找到匹配项后追加文本 例如,在以下行的~/.bash_概要文件中sed在匹配后追加文本,sed,append,Sed,Append,我正在编写一个shell脚本,以便能够在文件中找到匹配项后追加文本 例如,在以下行的~/.bash_概要文件中 PATH=$PATH:$HOME/bin 我们需要在它后面附加:/usr/java/jdk1.6.0_38/bin 因此,它将成为以下内容 PATH=$PATH:$HOME/bin:/usr/java/jdk1.6.0_38/bin 我怎么能和塞德一起做呢 我首先尝试从控制台内部使用以下命令,但它给了我一个错误:sed:-e expression#1,char 13:s的未知选项
PATH=$PATH:$HOME/bin
我们需要在它后面附加:/usr/java/jdk1.6.0_38/bin
因此,它将成为以下内容
PATH=$PATH:$HOME/bin:/usr/java/jdk1.6.0_38/bin
我怎么能和塞德一起做呢
我首先尝试从控制台内部使用以下命令,但它给了我一个错误:sed:-e expression#1,char 13:s的未知选项
我上面的命令有什么问题?问题是在替换命令的替换部分中有regex分隔符。使用
\
对其进行转义,或使用其他分隔符(本例中为逗号):
问题是在替换命令的替换部分中有regex分隔符。使用
\
对其进行转义,或使用其他分隔符(本例中为逗号):
这可能适用于您(GNU-sed):
这可能适用于您(GNU-sed):
sed '/PATH/s/$/:/usr/java/jdk1.6.0_38/bin' ~/.bash_profile
sed '/PATH/ s,$,:/usr/java/jdk1.6.0_38/bin,' ~/.bash_profile
sed 's|PATH=$PATH:$HOME/bin|&:/usr/java/jdk1.6.0_38/bin|' ~/.bash_profile