텍스트 파일에서 한 단어를 다른 단어로 바꾸고 싶습니다.
파일.txt:
alireza fallah
내 코드:
cat file.txt | tr ali ALI
그러나 나는 이것을 이해합니다:
ALI fALLAh
모든 'a'를 'A'로, 'l'을 'L'로, 'i'를 'I'로 바꿉니다.
'ali'를 'ALI'로 바꿀 수 있는 방법이 있나요?
답변1
이 작업은 GNU를 사용하여 더 쉽게 수행할 수 있습니다 sed
.
$ sed -i 's/ali/ALI/' file.txt
tr
계속 진행되기 때문에문자 집합대신에끈.
에코할 때 불필요한 대체를 피하려면 대체할 단어의 정확한 위치 및/또는 관심 있는 문자열과만 일치하는 정규식을 지정해 보십시오.
$ printf "cali\nali\nwali\nmali.\n" | grep -E '^ali' | tr ali ALI
ALI