텍스트 파일의 특정 단어를 바꾸길 원합니다. 특히 영어 철자가있는 단어의 영어 철자. 나는 주문하는 철자의 두 배열이 같은 즉sed awk 또는 grep로 단어 바꾸기
list_1 = [ '아늑한', '캐럿', '확인']
list_2 = [ '아늑한', '캐럿', '확인']
list_1의 요소를 텍스트 파일에서 검색하고 list_2의 요소를 대체 할 수 있습니까?
텍스트 파일의 특정 단어를 바꾸길 원합니다. 특히 영어 철자가있는 단어의 영어 철자. 나는 주문하는 철자의 두 배열이 같은 즉sed awk 또는 grep로 단어 바꾸기
list_1 = [ '아늑한', '캐럿', '확인']
list_2 = [ '아늑한', '캐럿', '확인']
list_1의 요소를 텍스트 파일에서 검색하고 list_2의 요소를 대체 할 수 있습니까?
이 방법은 사용자가 GNU sed
에 액세스 할 수 있다고 가정합니다. 이 파일 생성
$ cat script.sh
list_1=('cosy' 'carat' 'cheque')
list_2=('cozy' 'karat' 'check')
for i in "${!list_1[@]}"
do
echo "s/\\b${list_1[i]}\\b/${list_2[i]}/g"
done >spelling.sed
:
먼저 할 일은이 스크립트를 사용하여 해당 목록에서 정보를 얻을 지금
$ cat spelling.sed
s/\bcosy\b/cozy/g
s/\bcarat\b/karat/g
s/\bcheque\b/check/g
을, 우리는 철자를 변경하려면 해당 파일을 사용할 수 있습니다 . 예 :
$ echo "Decosy makes a cosy cheque." | sed -f spelling.sed
Decosy makes a cozy check.
Decosy
의 맞춤법은 변경되지 않습니다. 이것은 단어 경계를 나타내는 GNU 확장자 \b
을 사용하기 때문입니다. 이 방법으로 전체 단어 만 변경됩니다.
정말 고마워요. 정말 감사. –
예, awk를 사용하십시오. 아놀드 로빈스 (Arnold Robbins)의 Effective Awk Programming (효과적인 Awk Programming)을 아직받지 못했다면 스크립트를 작성한 후에 궁금한 점이 있으면 알려주십시오. –
"나는 할 수 ... ...?" 나는 몰라. 너 가능 하냐? 그래도 가능하다고 확신합니다. – twalberg
이 스레드를보세요 : [링크] (http://stackoverflow.com/questions/7198098/what-is-an-efficient-way-to-replace-list-of-strings-with-another-list-in- 유닉스 - 파이) – Aman