テキストファイルのすべての文字を特定の文字に置き換える

テキストファイルのすべての文字を特定の文字に置き換える

次のファイルがあります。

ファイル.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内部ファイルを変更したい場合は追加)。

PS。上記の式は大文字と小文字を区別します。大文字と小文字を区別せずに置き換えるには、次のように使用します。

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

答え2

各アルファベット文字を文字に置き換えるには、次の手順を実行しますN

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

関連情報