私はアニメが好きで、主に字幕付きのアニメを視聴します。時々、下流の人々は西洋人のように名前を城の前に置くように名前を並べ替えます。本当に好きではありませんが、名前の順序を変更しようとして字幕ファイルを手動でナビゲートするのは時間の無駄です。私はAwk(またはAwkが正しい選択ではない場合は他の標準のLinuxユーティリティ)を使用してテキスト内の大文字で始まり、常に一緒に表示される単語(タプル)を検索して順序を変更したいと思います。スペースと記号は単語区切り記号でなければなりません。これは誤検知が発生しないのに十分でなければなりません。
たとえば、すべてのインスタンスMiu Matsuoka
をに変換する必要がありますMatsuoka Miu
。
答え1
この試み、
sed -r -e "s:([A-Z][a-z]+)\s([A-Z][a-z]+):\2 \1:g" subfile > newsubfile
または、元のファイルを次のように変更できます。
sed -i -r -e "s:([A-Z][a-z]+)\s([A-Z][a-z]+):\2 \1:g" subfile
正規表現は、([A-Z][a-z]+)\s([A-Z][a-z]+)
大文字で始まる2つの連続した単語を選択し、sed
その順序を逆にします。これがすべてのテストケースと一致することを確認してください。いくつかのテストをしましたが、効果がありました。