【发布时间】:2011-02-10 05:34:31
【问题描述】:
我想使用 sed 将字符串 foo 全局替换为字符串 bar。这只适用于不以字符串 ##Input 开头的行。
我无法让它工作。我尝试过这样的事情,但到了我不确定自己是否知道自己在做什么的地步:
sed -i '/^##Input/ s/foo/bar/g' myfile
请帮忙!
【问题讨论】:
标签: sed
我想使用 sed 将字符串 foo 全局替换为字符串 bar。这只适用于不以字符串 ##Input 开头的行。
我无法让它工作。我尝试过这样的事情,但到了我不确定自己是否知道自己在做什么的地步:
sed -i '/^##Input/ s/foo/bar/g' myfile
请帮忙!
【问题讨论】:
标签: sed
您只需要使用! 否定匹配:
sed -i '/^##Input/! s/foo/bar/g' myfile
【讨论】:
sed 手册的 addresses 部分以了解更多信息。
你必须像\#一样逃脱#。
【讨论】:
#。对sed没有特殊意义。
一个丑陋的请求的一个丑陋的答案(即他们得到了他们所要求的):
echo \{
for file in *.json; do
sed -n '/^[\{\}]/! s/\([^\,]\)$/\1,/; /^[\{\}]/!p' $file
done
echo \{
【讨论】: