我有一个第一个字段的文件,如下所示:
ENSGALG00000000189|ENSGALT00000000247|10|3979|4020
我想摆脱“|”签署,只是有一个空间。
我一直在尝试使用此代码,但它不起作用:
awk -F "|" '{gsub ("|", "")' file
如果你能帮助我,我会非常感激。谢谢
答案 0 :(得分:1)
此awk
应该
echo "ENSGALG00000000189|ENSGALT00000000247|10|3979|4020 " | awk -F\| '$1=$1' OFS=" "
ENSGALG00000000189 ENSGALT00000000247 10 3979 4020
或者更强大的
awk -F\| '{$1=$1}1' OFS=" "
这些设置将Filed Separator输入到|
,输出分隔符设置为"space"
$1=$1
,使用新的分隔符重建数据。
答案 1 :(得分:1)
使用tr
代替awk
:
tr '|' ' ' < input.txt > output.txt
答案 2 :(得分:0)
使用gsub
:
$> echo "ENSGALG00000000189|ENSGALT00000000247|10|3979|4020" | awk '{ gsub (/\|/, " "); print }'
ENSGALG00000000189 ENSGALT00000000247 10 3979 4020
答案 3 :(得分:0)
处理管道符号 -
$ cat file
ENSGALG00000000189|ENSGALT00000000247|10|3979|4020
使用 awk
$ awk -F '|' '{print $1 " " $2 " " $3 " " $4 " " $5}' file
ENSGALG00000000189 ENSGALT00000000247 10 3979 4020
使用 sed
$ cat file | sed 's/|/ /g'
ENSGALG00000000189 ENSGALT00000000247 10 3979 4020