Bash에서 텍스트 줄을 다른 텍스트 줄로 바꾸기

Bash에서 텍스트 줄을 다른 텍스트 줄로 바꾸기

파일의 텍스트 줄을 다른 파일로 변경하고 싶습니다. 예: 내가 가지고 있는 텍스트

내보내기 GEOFIL='/afs/in2p3.fr/home/throng/antares/DETECTOR/r12_c00_s01.det 1 1'

새것으로 교체하고 싶어요

내보내기 GEOFIL='/pbs/throng/antares/DETECTOR/r12_c00_s01.det 1 1'

이 작업은 현재 디렉터리의 모든 파일에 대해 수행되어야 합니다.

답변1

사용 sed명령:

sed -i -e 's#/afs/in2p3.fr/home/#/pbs/#' the_filename

노트:

  • -i옵션은 출력이라는 파일의 내용을 변경하여 the_filename새 파일을 만드는 데 사용됩니다.
  • #s텍스트에 /문자가 포함되어 있으므로 sed 명령에 문자를 사용하십시오.

현재 디렉토리의 모든 파일에 대해 실행하려면 다음을 수행하십시오.

find . -maxdepth 1 -type f -exec sed -i -e 's#/afs/in2p3.fr/home/#/pbs/#' {} \;

노트:

  • .: 현재 디렉터리에서 작업
  • -type f: 표준 파일에만 적용됩니다.
  • -maxdepth 1: 하위 디렉터리가 아닌 현재 디렉터리(깊이 = 1)에서만 작동합니다.
  • {}find명령으로 찾은 파일 이름 으로 바꾸십시오.
  • \;-exec옵션 끝이에요

관련 정보