从 linux 中的文本列中删除命令 or/and 其他字符

Remove command or/and other character from a text column in linux

如何从 linux 中的特定文本列中删除一个或多个字符?

假设我有以下示例。

sender | recipient | this is a , subject | qty

我想知道如何只从第 3 行删除“逗号”。

分隔符为“|”。

谢谢!

我不确定这是不是最简单的方法。

$ a="sender | recipient | this is a , subject | qty"
$ var1=`echo $a | cut -d'|' -f3 `
$ var2=`echo $a | cut -d'|' -f3 | tr -d ','`
$ echo $a | sed "s/$var1/$var2/"
  • 第二行之后,var1为第三列内容
  • 第三行后,var2为不带','的第三列内容 因为我们用 tr 命令删除了它
  • 最后用 var2 替换 var1