用特定字符替换文本文件中的所有字符

用特定字符替换文本文件中的所有字符

我有一个如下所示的文件:

文件.txt

NNNP
PPZL
ZZNN

我想将所有字母替换为“N”,并具有与输入相同行数的输出:(这里的文件有 3 行,但实际上,我的文件有数千行)

NNNN
NNNN
NNNN

事实上,我可以使用以下命令创建一个新文件:

printf %4s | tr " " "N" > file2.txt
yes "$(<file2.txt)" | head -n3

但是,有人知道是否有更直接的方法来一次替换所有字母并保持相同的列和行矩阵?

答案1

实现它的最简单方法是sed

sed 's/[A-Z]/N/g' file.txt

-i如果您想要就地文件更改,请添加)。

附言。请注意,上面的表达式区分大小写。如果您想要不区分大小写的替换,请使用如下内容:

sed 's/[A-Z]/N/Ig' file.txt

答案2

要将每个字母字符替换为字母N

tr '[:alpha:]' N < file.txt > file2.txt

相关内容