달러 기호( )가 포함된 test_output_archive.svd 파일이 있습니다 $
. 달러 기호를 파운드( )로 바꾸는 cat 명령을 사용하여 쉘 스크립트인 Install_dollar_pound.sh를 생성했습니다. £
스크립트는 Solaris 10에서 작동하며 달러는 예상대로 대체됩니다. Solaris 11에서는 달러가 교체되지 않고 오류가 발생하지 않습니다.
test_output_archive.svd의 내용: 라인 대여 $9 OOB 단 $10
1단계에서 달러 기호를 파운드로 바꾸고, 2단계에서 정크 문자를 제거하고, 3단계에서 임시 파일을 제거하고, 4단계에서 이름을 바꿉니다**
바꾸기_달러_파운드.sh의 내용: 고양이 test_output_archive.svd | tr "\044" "\243" > temp_archive.svd 고양이 temp_archive.svd | tr -d "\302" > test_output_archive2.svd rm temp_archive.svd mv test_output_archive2.svd test_output_archive.svd
OS가 Solaris 11로 업데이트됨에 따라 수행해야 할 수정 사항은 무엇입니까?
답변1
는 $
정규식에서 특별한 의미를 가지며, "레코드의 끝"을 의미합니다(대부분의 경우 레코드==라인). 그러니 탈출해야 합니다. 이 시도:
sed 's/\$/£/g' file > outfile
답변2
sed 명령에서 특수 문자($)를 이스케이프할 수 있습니다.
$ cat test.txt
£ pound £
$ dollar $
£ pound £
$ dollar $
$ sed 's/\$/£/g' test.txt
£ pound £
£ dollar £
£ pound £
£ dollar £
또는 대안적으로
$ sed 's/[$]/£/g' test.txt
£ pound £
£ dollar £
£ pound £
£ dollar £