特定の特殊文字を含むテキストファイルの行をコピーしようとしますが、コピー内の特殊文字は「一般」ASCII文字に置き換えられます。特定のユースケースはアクセント文字です。
入力する:
éva
test
frédéric
希望の出力:
éva
eva
test
frédéric
frederic
これで、文字を含む行をコピーできますが、é
キャプチャグループ内で検索して置き換える方法がわかりません。
これが私が今まで得たものです:
echo 'éva\ntest\nfrédéric' | sed 's/\(.*é.*\)/&\n\1/'
私はこれを行うことができますかsed
?そうでなければ、一緒に働きたいawk
...
ベストアンサー1
複数のコマンドを一致させé
た後に適用できます。
sed '/é/{p;s/é/e/g;}'
埋め込み行の場合は、é
現在のパターンスペースを印刷してから、すべてのé
sを次に置き換えますe
(そしてパターンスペースを再印刷します)。
AWKに対応するものは次のとおりです。
awk '/é/{print; gsub(/é/, "e")}1'
sed
このs
コマンドはアドレスパターンを再利用できます。
sed '/é/{p;s//e/g;}'
置換項目がすべて単一文字置換の場合、このy
コマンドはより効率的です。
sed '/é/{p;y/é/e/;}'