여러 단어를 한 번에 검색하고 바꾸는 방법

여러 단어를 한 번에 검색하고 바꾸는 방법

여러 단어를 검색하고 바꿔야 합니다. 예를 들어, 내 파일에서 뒤에 쉼표가 있는 평일 이름을 검색하고 싶습니다. Sat,또는 Sun,또는 Mon,또는 또는 Tue,또는 또는 Wed,쉼표 가 없는 이름: 또는 또는 또는 또는 또는 또는 또는 . 나는 이것을 하나씩 수행하는 방법을 알고 있습니다.Thur,Fri,SaturdaySundayMondayTuesdayWednesdayThursdayFriday

sed 's/Sat,/Saturday/g' myfile.txt > output.txt

하지만 매주 여러 개의 파일을 확인해야 하기 때문에 모든 이름을 확인하고 한 번에 교체할 ​​수 있는 보다 효율적인 방법을 찾아야 합니다. 스크립트를 통해 이 작업을 수행할 수 있다는 것을 알고 있지만 이전에는 이 작업을 수행해 본 적이 없습니다. 누구든지 이것에 대해 잘 알고 있다면 이번에 배우고 다음에는 스스로 할 수 있습니다.

답변1

다음과 같이 여러 sed표현식을 연결할 수 있습니다 -e.

sed -e 's/Sat,/Saturday/g' -e 's/Sun,/Sunday/g' <file>

Sat,그러면 모든 항목이 with Saturday및 모든 항목으로 Sun,대체 됩니다 Sunday.

답변2

이 솔루션을 공유해야겠다고 생각했습니다. 내가 다운로드한 미디어 자막에는 NSFC(어린이에게 안전하지 않음)라는 단어가 가득했습니다. 이렇게 하면 불쾌감을 주는 단어가 재귀적으로 제거됩니다.

find . -type f -name "*.srt" -exec sed -i 's/\(word1\|word2\|word3\|word4\|word5\|word6\|word7\|word8\)//g' {} +

그러면 제거가 확인됩니다.

grep --include=\*.srt -rnwE . -e 'word1|word2|word3|word4|word5|word6|word7|word8'

관련 정보