Bash에서 파일의 문자열을 바꾸는 방법

How Replace String File Bash



프로그래머는 데이터를 일시적으로 또는 영구적으로 저장하기 위해 다양한 유형의 파일로 작업해야 할 수 있습니다. 경우에 따라 파일의 일부를 바꾸거나 파일의 특정 내용을 수정해야 할 수도 있습니다. 파일의 내용을 바꾸려면 특정 파일 문자열을 검색해야 합니다. NS 하지만 명령은 bash 스크립트를 사용하여 파일의 문자열을 바꾸는 데 사용됩니다. 이 명령은 bash에서 파일의 내용을 대체하기 위해 다양한 방법으로 사용될 수 있습니다. NS '앗 ' 명령을 사용하여 파일의 문자열을 바꿀 수도 있습니다. 이 튜토리얼에서는 bash 스크립트를 사용하여 파일에서 문자열 값을 바꾸는 방법을 보여줍니다. 판매.txt 교체 작업을 표시하기 위해 다음 콘텐츠가 생성됩니다.

판매.txt







날짜 금액 영역

2020-01-01 60000 다카
2020-02-10 76000 라즈샤히
2020-03-21 54000 쿨나
2020-04-15 78000 찬드푸르
2020-05-17 45000 보그라
2020-06-02 67000 코밀라

파일의 문자열을 `sed` 명령으로 바꾸기

`의 기본 구문 세드 ` 파일의 특정 문자열을 바꾸는 명령은 다음과 같습니다.



통사론



세드 -NS 's/search_string/replace_string/'파일 이름

위 구문의 모든 부분은 아래에 설명되어 있습니다.





'-NS' 옵션은 검색 문자열이 파일에 있는 경우 대체 문자열로 원본 파일의 내용을 수정하는 데 사용됩니다.

'NS' 대체 명령을 나타냅니다.



'검색 문자열' 대체를 위해 파일에서 검색할 문자열 값을 포함합니다.

'교체_문자열' 일치하는 파일의 내용을 바꾸는 데 사용할 문자열 값을 포함합니다. '검색 문자열' 값.

'파일 이름' 검색 및 바꾸기가 적용될 파일 이름을 포함합니다.

예 1: 파일을 'sed' 명령으로 바꾸기

다음 스크립트에서 검색 및 바꾸기 텍스트는 사용자로부터 가져옵니다. 검색 문자열이 'Sales.txt'에 있으면 대체 문자열로 대체됩니다. 여기에서 대소문자를 구분하는 검색이 수행됩니다.

#!/bin/bash

# 파일 이름 지정
파일 이름='판매.txt'

# 검색 문자열 가져오기
읽다 -NS '검색 문자열을 입력하세요: '검색

# 바꾸기 문자열을 가져옵니다.
읽다 -NS '바꾸기 문자열을 입력하세요: '바꾸다

만약 [[ $검색 !='' && $바꾸다 !='' ]];그 다음에
세드 -NS 'NS/$검색/$바꾸다/ ' $파일명
~이다

산출

예 2: 파일을 'sed' 명령으로 'g' 및 'i' 플래그로 바꾸기

다음 스크립트는 이전 예제와 같이 작동하지만 검색 문자열은 'g' 플래그에 대해 전역적으로 검색되고 대소문자를 구분하지 않는 검색은 'i' 플래그에 대해 수행됩니다.

#!/bin/bash

# 검색 문자열 가져오기
읽다 -NS '검색 문자열을 입력하세요: '검색

# 바꾸기 문자열을 가져옵니다.
읽다 -NS '바꾸기 문자열을 입력하세요: '바꾸다

만약 [[ $검색 !='' && $바꾸다 !='' ]];그 다음에
세드 -NS 'NS/$검색/$바꾸다/주다' $ 1
~이다

산출

예 3: 파일을 'sed' 명령 및 일치하는 숫자 패턴으로 바꾸기

다음 스크립트는 파일의 모든 숫자 내용을 검색하고 다음을 추가하여 내용을 바꿉니다. '$' 숫자의 시작 부분에 있는 기호.

#!/bin/bash

# 명령줄 인수 값이 있는지 확인
만약 [ $ 1 !='' ];그 다음에
# 숫자가 포함된 모든 문자열을 검색하고 $를 추가합니다.
세드 -NS 's/[0-9]{5}/$&/g' $ 1
~이다

산출

파일의 문자열을 `awk` 명령으로 바꾸기

NS ' 어이쿠 ' 명령은 파일의 문자열을 바꾸는 또 다른 방법이지만 이 명령은 ' 하지만 명령.

예 4: 파일을 'awk' 명령으로 바꾸기

다음 스크립트는 업데이트된 콘텐츠를 임시.txt 원본 파일에 의해 이름이 변경될 파일입니다.

#!/bin/bash

# 명령줄 인수 값이 있는지 확인
만약 [ $ 1 !='' ];그 다음에
# 날짜를 기준으로 모든 문자열 검색
어이쿠 '{sub('02/06/2020','12/06/2020')}1' $ 1 >임시.txt&& 뮤직비디오임시.txt$ 1
~이다

산출

결론

이 기사에서는 bash 스크립트를 사용하여 파일의 특정 문자열을 바꾸는 방법을 보여주었습니다. 파일의 문자열을 바꾸는 작업은 위의 예제를 연습한 후에 더 쉬워질 것입니다.