删除第一行中的匹配字符和其他行中下面的所有字符
Remove matching character in the first line and all characters below in other lines
我有一些字符串
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、mawk 和最近 MacOS 上的默认 awk。
我有一些字符串
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、mawk 和最近 MacOS 上的默认 awk。