sed - 如何在 Mac OS 上使用 sed 最后将“^M”替换为“,1”?
问题描述
如何使用 sed 在每行末尾添加“,1”?我使用的文件是这样的;
A
B
C
我试过这个;
sed 's/$/,1/' alphabets.txt > alphabets1.txt
得到了这个;
A
,1
B
,1
C
,1
但我想要的是这个;
A,1
B,1
C,1
当我尝试“https://stackoverflow.com/questions/15978504/add-text-at-the-end-of-each-line”的最佳答案时,我得到了一个空白页。
sed -n 's/$/,1/' alphabets.txt > alphabets2.txt
我发现最后有 ^M 使用 cat -vt 文件。如何删除它并将其更改为“,1”?
解决方案
Macsed
是BSD sed。您可以在一个文件上尝试这个命令,可选地\r
以删除\r
和追加结尾1
:
sed -E $'s/\\\r?$/,1/'
A,1
B,1
C,1
确保您的 shellbash
在运行此程序时正在运行。
您还可以使用:
sed -E 's/'$'\r''?$/,1/' file
$'\r'
是要匹配的 BASH 字符串\r
,?
之后使其成为可选。
请注意,这个 sed 命令也可以在gnu sed
.
推荐阅读
- ubuntu - 无法建立远程连接:Neo4jError: WebSocket 连接失败。Ubuntu
- c++ - Win32中的多线程编程
- maven - Jfrog 的 Bitbucket 管道无法下载构建插件
- wordpress - Wordpress 登录 - 更改 URL 无法访问
- web-scraping - Excluding quotes while scraping text on a forum site
- reactjs - 如何在同一个索引上推送两个数组值?
- spring-boot - 引起:java.lang.ClassNotFoundException:org.springframework.beans.factory.ListableBeanFactory
- python - 如何忽略 Pycharm 警告“TypedDict”“没有键”?
- python - 我可以在python中计算两个具有非数字元素的向量之间的乘法吗?
- c++ - 表达式必须有一个常数值。但是,输入常量值不会改变任何东西