我有这样的字符串
BRADI5G20430|BRADI5G20430.1||1
如何用制表符(“\t”)替换条形(单个和多个)?
我尝试了这个但是没有工作
sed 's/\|+/\t/g'
我也想在bash脚本中包含这一行。
最佳答案
您需要转义+
$ sed 's/|\+/\t/g' file
BRADI5G20430 BRADI5G20430.1 1
或者您可以使用sed的
-r
选项,但是这次,+
将为“一个或多个”,并且您需要转义“|”因为在正则表达式中,它意味着交替。$ sed -r 's/\|+/\t/g' file
BRADI5G20430 BRADI5G20430.1 1
或使用awk,将字段分隔符设置为“|”然后将输出字段分隔符
OFS
设置为tab \t
例如
$ awk -F"|" '{$1=$1}1' OFS="\t" file
BRADI5G20430 BRADI5G20430.1 1
这将每个选项卡替换为“|”。如果要替换所有“|”一个标签
$ awk '{gsub(/\|+/,"\t")}1' file
BRADI5G20430 BRADI5G20430.1 1