macOS环境下如何移除文件中行尾的短横线?已尝试命令均无效
macOS下移除行尾短横线的正确方法
针对你要移除文件行尾短横线的需求,以下是有效命令:
1. 预览修改结果(不修改原文件)
sed 's/-$//' output.txt
如果行尾可能存在空格、制表符等空白字符(短横线在这些字符前面),用这个命令匹配并移除:
sed 's/-[[:space:]]*$//' output.txt
2. 直接修改原文件(原地编辑)
macOS使用的是BSD版本的sed,原地编辑需要加空后缀参数(避免生成备份文件):
sed -i '' 's/-$//' output.txt
带空白字符处理的版本:
sed -i '' 's/-[[:space:]]*$//' output.txt
你之前的命令为什么无效:
sed -e 's/^-//' -e 's/-$//' output.txt:仅将修改结果输出到终端,未写入原文件;如果行尾有空白字符,-$无法匹配到短横线。cat output.txt | tr -d -:tr会删除文件中所有短横线,不是仅行尾的。tr -d '[0-9-]' < output.txt:错误地删除了所有数字和短横线,不符合需求。sed 's/[0-9-]//g' output.txt > output1.txt:全局删除所有数字和短横线,不是只处理行尾。
内容的提问来源于stack exchange,提问作者Raymond
相关产品推荐
相关产品推荐

