【发布时间】:2014-07-07 04:49:12
【问题描述】:
我有一个包含以下内容的文件 (foo.txt):
some-text 0
我使用以下 sed 命令将 0 替换为 1:
search_text="some-text";
sed "s/${search_text} 0/${search_text} 1/" -i foo.txt;
这导致 foo.txt 包含:
some-text 0
some-text 1
如何让它替换找到的行而不是追加新行?
它发生在 SL06 上的 GNU sed 版本 4.2.1 中。
【问题讨论】:
-
您的行是否以回车结束?我能想到的唯一解释是行不完整时的未定义行为。取决于您的环境和工具版本。
-
拥有 CR/NL 似乎没有什么不同。
-
似乎在这里工作。也许实际的“某些文本”包含一些
sed命令? -
这似乎无法重现。如果您使用问题中的示例,您的系统是否会出现相同的行为?
-
在对文件使用 sed 之前尝试使用
dos2unix foo.txt