如何用Bash为.txt词典文件指定列添加括号并优化格式
处理制表符分隔词典文件的解决方案
方法一:用awk(推荐,列处理更直观)
直接针对制表符分隔的列进行修改,命令简洁不易出错:
awk 'BEGIN {FS="\t"; OFS="\t"} {print $1, "(" $2 ")", "- " $3}' 你的输入文件名.txt > 处理后文件名.txt
- 核心逻辑:通过
FS和OFS指定输入输出的列分隔符为制表符,确保处理后列格式不变;直接对第二列包裹括号,第三列前添加-。
方法二:用sed(正则匹配方式)
如果坚持用sed,需确保正确匹配制表符并使用扩展正则:
sed -E 's/^([^\t]*)\t([^\t]*)\t(.*)$/\1\t(\2)\t- \3/' 你的输入文件名.txt > 处理后文件名.txt
- 核心逻辑:用正则捕获三列内容,然后替换为目标格式;
-E启用扩展正则,避免对括号转义;\t明确匹配制表符,防止和空格混淆。
常见失败原因
之前sed命令失效大概率是这两个问题:
- 没正确用
\t匹配制表符,误写成了空格; - 没加
-E参数,导致括号需要额外转义,正则匹配出错。
内容的提问来源于stack exchange,提问作者DIC
相关产品推荐
相关产品推荐

