저는 영어를 모스 부호로 번역할 수 있는 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
물론 파일 이름 확장자를 제거할 수도 있습니다. 아무것도 하지 않습니다.