私は英語をモールス符号に翻訳できるsedスクリプトファイルを作成する任務を務めました。しかし、まずモールス符号ファイルをsedスクリプトに入れて、英語をモールス符号に翻訳するために使用できるファイルに変換します。それで、この方法を試してみました。以下のようにsedスクリプトからファイルを作成しました。
s/[Aa]/\.-/g
s/[Bb]/-\.\.\./g
s/[Cc]/-\.-\./g
s/[Dd]/-\.\./g
s/[Ee]/\./g
s/[Ff]/\.\.-\./g
s/[Gg]/--\./g
s/[Hh]/\.\.\.\./g
s/[Ii]/\.\./g
s/[Jj]/\.---/g
s/[Kk]/-\.-/g
s/[Ll]/\.-\.\./g
s/[Mm]/--/g
s/[Nn]/-\./g
s/[Oo]/---/g
s/[Pp]/\.--\./g
s/[Qq]/--\.-/g
s/[Rr]/\.-\./g
s/[Ss]/\.\.\./g
s/[Tt]/-/g
s/[Uu]/\.\.-/g
s/[Vv]/\.\.\.-/g
s/[Ww]/\.--/g
s/[Xx]/-\.\.-/g
s/[Yy]/-\.--/g
s/[Zz]/--\.\./g
s/0/------/g
s/1/\.---/g
s/2/\.\.---/g
s/3/\.\.\.--/g
s/4/\.\.\.\.-/g
s/5/\.\.\.\.\./g
s/6/-\.\.\.\./g
s/7/--\.\.\./g
s/8/---\.\./g
s/9/----\./g
ただし、最終的には英語をモールス符号に翻訳するために使用できるスクリプトファイルが必要です。私はここに閉じ込められている
答え1
これで終わりました。
ファイルからスクリプトを実行するだけです。
sed -f script.sed inputfile
例:
$ cat file
Kusalananda
$ sed -f script.sed file
-.-..-....-.-...--..--.-...-
スクリプトで言及する価値がある唯一のことは、点が代替テキストに表示されるときに点をエスケープする必要がなく、スクリプトが句読点を処理しないことです。また、デコードをより簡単にするために、各コードをスペースや他の文字で終わりたい場合もあります(s/\(.\)/\1 /g
最初のコマンドで実行するとこれを行うことができます)。
[Aa]
最初のディレクティブを次のように設定してこれを実行することもできます。
s/\([A-Z]\)/\L\1/g
これにはGNUが必要ですが、sed
すべての文字を小文字に変換します。
GNU 以外の場合、sed
次のコマンドはすべての文字を小文字にします。
y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
必要に応じて追加できます。
#!/usr/bin/sed -f
スクリプトの一番上の行に追加して実行可能にします。これによりスクリプトを実行できます。
./script.sed file
前提は、オンラインパスがsed
正しいことです#!
。.sed
もちろん、ファイル名拡張子を削除することもできます。何もしません。