Sed 如何删除文件每行单词中的特定字母

Sed 如何删除文件每行单词中的特定字母,sed,Sed,我需要删除每行数字后的一个字符。我如何使用sed完成这项工作? 我使用sed命令删除,但失败 输入: 481065919|g UPF0114 481065919|g PRK12772 我需要从每行中删除| g 预期产出: 481065919 UPF0114 移除与不替换相同。这对我很有用: sed -i "s/|5//g" test.txt 也可以使用awk awk '{gsub(/\|g/,"")}8' file gsub替换在/…/ 要查找|g您需要转义|,因为它是一个特殊字符,所以

我需要删除每行数字后的一个字符。我如何使用sed完成这项工作? 我使用sed命令删除,但失败

输入:

481065919|g UPF0114
481065919|g PRK12772
我需要从每行中删除
| g

预期产出:

481065919 UPF0114

移除与不替换相同。这对我很有用:

sed -i "s/|5//g" test.txt

也可以使用
awk

awk '{gsub(/\|g/,"")}8' file
gsub
替换在
/…/

要查找
|g
您需要转义
|
,因为它是一个特殊字符,所以
\\124; g

替换为“
,表示无任何内容(与删除相同)
8
只是任意正数,执行默认操作,打印任何内容。

8
1
相同,与
1{print}
相同,与
1{print$0}

抱歉,使用此命令,我没有得到结果。错误:没有这样的文件?我认为最后一个“/”符号有问题。由于管道符号,这有点棘手,但我更新的答案中的行对我有效。再次抱歉。没有工作。我得到了空的输出文件,奇怪。。。我根据上面的问题创建了一个测试文件,其中包含了您的确切内容,并且我的回答中给出的陈述完美无瑕。你注意到双引号了吗?是的,和我用的命令一样。我刚刚复制到终端。我正在使用zsh shell。这可能是原因吗?