我有一个包含第一个字段的文件,如下所示:
ENSGALG00000000189|ENSGALT00000000247|10|3979|4020
我想摆脱“|” 签名,然后有一个空间。
我一直在尝试这段代码,但它不起作用:
awk -F "|" '{gsub ("|", "")' file
如果你能帮我解决这个问题,我将非常感激。谢谢
我有一个包含第一个字段的文件,如下所示:
ENSGALG00000000189|ENSGALT00000000247|10|3979|4020
我想摆脱“|” 签名,然后有一个空间。
我一直在尝试这段代码,但它不起作用:
awk -F "|" '{gsub ("|", "")' file
如果你能帮我解决这个问题,我将非常感激。谢谢
使用tr而不是awk:
tr '|' ' ' < input.txt > output.txt
这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|和 Output Separator 以"space" $1=$1使用新的分隔符重建数据。
使用gsub:
$> echo "ENSGALG00000000189|ENSGALT00000000247|10|3979|4020" | awk '{ gsub (/\|/, " "); print }'
ENSGALG00000000189 ENSGALT00000000247 10 3979 4020
处理管道符号 -
$ 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