sed 替换行尾

发布于 2024-10-16 21:52:41 字数 331 浏览 7 评论 0原文

我正在尝试在行尾添加一堆 0。该行的识别方式是它后面跟着一行以“expr1”开头的行,

在 Vim 中我所做的是:

s/\nexpr1/ 0 0 0 0 0 0\rexpr1/

并且它工作正常。我知道在 ubuntu 中 \n 通常用于终止该行,但每当我这样做时,我都会得到一个 ^@ 符号,所以 \r 对我来说效果很好。我以为我可以将它与 sed 一起使用,但它并没有真正起作用。这是我通常写的:

sed "s/\nexpr1/ 0 0 0 0 0 0\rexpr1/" infile > outfile

I'm trying to add a bunch of 0s at the end of a line. The way the line is identified is that it is followed by a line which starts with "expr1"

in Vim what I do is:

s/\nexpr1/ 0 0 0 0 0 0\rexpr1/

and it works fine. I know that in ubuntu \n is what is normally used to terminate the line but whenever I do that I get a ^@ symbol so \r works fine for me. I thought I'd use this with sed but it hasn't really worked. here is what I normally write:

sed "s/\nexpr1/ 0 0 0 0 0 0\rexpr1/" infile > outfile

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

百思不得你姐 2024-10-23 21:52:41

行尾标记是 $。试试这个:

s/$/ 0 0 0 0 0 0/

根据您的环境,您可能需要转义 $。

The end-of-line marker is $. Try this:

s/$/ 0 0 0 0 0 0/

Depending on your environment, you might need to escape the $.

唯憾梦倾城 2024-10-23 21:52:41
awk '{$0=$0" 0 0 0 0 0 "}1' file > tmp && mv tmp file

ruby -i.bak -ne '$_=$_.chomp!+" 0 0 0 0 0\n";print' file
awk '{$0=$0" 0 0 0 0 0 "}1' file > tmp && mv tmp file

ruby -i.bak -ne '$_=$_.chomp!+" 0 0 0 0 0\n";print' file
故事未完 2024-10-23 21:52:41
awk '$(NF + 1) = " 0 0 0 0 0 0"' infile > outfile
awk '$(NF + 1) = " 0 0 0 0 0 0"' infile > outfile
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文