删除第一行中的匹配字符和其他行中下面的所有字符

  • 本文关键字:字符 其他 一行 删除 bash
  • 更新时间 :
  • 英文 :


我有一些字符串

M-AA-
-AG--
M---G

我想删除第一行中的-和其他行中-位置对应的所有字符,以获得

MAA
-G-
M--
我可以知道如何在最简单的bash命令中做到这一点吗?

对于awk[1],如果将字段分隔符设置为空字符串,则可以遍历每个字符:

awk '
BEGIN {FS = OFS = ""}
NR == 1 {for (i=1; i<=NF; i++) if ($i == "-") remove[i]}
{for (i in remove) $i = ""; print}
' file

[1] -至少gawk, mak和默认的awk在最近的MacOS。

相关内容

最新更新