使用
sed's/$/x/'
并输入字符串
foo”酒吧
标准输入给出了预期的结果
foo"barx
但是,将相同的字符串放入文件并运行
sed 's/$/x/' 文件名
给出结果
xoo”酒吧
使用 sed append 命令得到相同的结果。在包含引号的文件中,在行尾附加字符时,bash/sed 命令应该是什么才能获得所需的结果?
答案1
我得到的结果和你不一样。不过我首先想到的是行尾。传统上 \n 表示换行(向下),而 \r 表示回车(返回到开头),并且两个字符连在一起表示向下然后返回。Unix 传统上只使用 \n,而 Microsoft 使用 \r\n。
我正在猜测 sed 会如何处理这个问题,但也许你的文件以 \r\n 作为行尾,但 sed 作为 Linux 工具匹配 \n。因此,首先回车符返回到行首,然后 sed 匹配下一个字符 \n,并放置一个 x(但现在光标位于行首,因此它会覆盖第一个字符)。
如果您还没有这样做,请尝试使用 Linux 编辑器创建该文件。