tr 명령을 사용하여 정확한 단어를 쉘의 다른 단어로 바꾸십시오.

tr 명령을 사용하여 정확한 단어를 쉘의 다른 단어로 바꾸십시오.

텍스트 파일에서 한 단어를 다른 단어로 바꾸고 싶습니다.

파일.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

관련 정보