请求编写Shell脚本:替换指定行尾的||为带空格的| |
解决方案
可以用sed命令精准实现这个文本处理需求,只对符合条件的行做末尾替换:
sed '/^elecj_test:/s/||$/| |/' input.txt > output.txt
命令细节解释
/^elecj_test:/:过滤出以elecj_test:开头的行,只对这些行执行后续替换操作s/||$/| |/:仅替换行尾的||为| |,$锚定行结束位置,确保不会改动行中间出现的||
示例验证
假设输入文件input.txt内容如下:
elecj_test: abc || def || elecj_test: xyz || 123 normal_line: test || content ||
执行命令后,输出文件output.txt内容为:
elecj_test: abc || def | | elecj_test: xyz || 123 normal_line: test || content ||
可见只有第一行(同时满足开头和结尾条件)的末尾||被替换,其他行完全保留原有内容。
如果需要直接修改原文件(原地编辑),GNU sed可加-i参数:
sed -i '/^elecj_test:/s/||$/| |/' input.txt
macOS等系统的BSD sed需指定空备份后缀(无备份需求时):
sed -i '' '/^elecj_test:/s/||$/| |/' input.txt
内容的提问来源于stack exchange,提问作者sathavahana
相关产品推荐
相关产品推荐

