Linux中如何对齐包含|和,两种分隔符的文本文件内容?
解决方案
可以用sed命令轻松实现这个需求,它只会修改逗号后面没有空格的情况,完全不会干扰其他不含目标分隔符的文本:
sed -E 's/,([^ ])/, \1/g' your_file.txt
命令解释
-E:启用扩展正则表达式语法,让捕获组的写法更直观s/,([^ ])/, \1/g:这是一个全局替换规则:,([^ ]):匹配逗号后面紧跟非空格字符的模式,用括号把后面的非空格字符捕获为一个组, \1:把匹配到的内容替换成「逗号 + 空格 + 捕获到的字符」g:全局执行替换,确保文本中所有符合条件的逗号都被处理
效果验证
针对你给出的示例文本:
原内容:
b | b | c aaaaaaaa | b | c 1,2,3 10000,3,4
执行命令后输出:b | b | c aaaaaaaa | b | c 1, 2, 3 10000, 3, 4
可以看到,所有需要添加空格的逗号都被正确处理,而原本的|分隔格式和不含分隔符的c aaaaaaaa部分完全没有被改动,完全符合你的要求。
内容的提问来源于stack exchange,提问作者Rohan Ghige
相关产品推荐
相关产品推荐

