【发布时间】:2017-08-11 01:59:56
【问题描述】:
我试图在文件开头插入一个 /file/path 作为字符串,并让 sed 返回代码 100,但它正在替换我所有的文件内容:
printf "Message\nMessage\nMessage\n" > test.tex;
sed -i "\@^@{ 1s@^@% Message\n@; q100}" test.tex;
cat test.tex;
输出:
% Message
Message
如果我尝试将1s 放在开头:
sed -i "\1s@^@{ 1s@^@% Message\n@; q100}" test.tex
它抛出错误:
sed: -e expression #1, char 32: unexpected `}'
参考资料:
- Return code of sed for no match
- How can I pass correctly the parameter `q` with value 100 to my sed expression?
更新
我只是注意到返回码为 100 没有任何意义,所以我可以这样做
sed '1s@^@% Message\n@'
但出于好奇,这可能吗?
更新 2
正确的输出是:
% Message
Message
Message
Message
即保留我添加到文件中的最初3个文件Message。
【问题讨论】: