我有一个如下所示的文件:
文件.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