재귀적으로 텍스트 파일에서 단어 찾기 및 바꾸기

재귀적으로 텍스트 파일에서 단어 찾기 및 바꾸기

이 폴더 안에 많은 텍스트 파일이 포함된 폴더 트리가 있습니다. 이들 파일은 동일한 이름 "log.txt"와 동일한 형식을 갖습니다. 예를 들어, 각 파일에서 다음과 같은 여러 줄을 볼 수 있습니다.

date
name
. 
.
.

find명령을 사용 하여 이 폴더 트리에서 모든 텍스트 파일 "log.txt"를 찾은 다음 각 텍스트 파일에서 "date"라는 단어를 "dating"이라는 단어로 바꾸려면 어떻게 해야 합니까 ?

답변1

현재 트리의 루트에 있다고 가정합니다(그렇지 않으면 "."를 디렉터리 이름으로 바꿉니다). "log.txt"를 "*.txt" 또는 원하는 대로 바꿀 수 있습니다.

find . -type f -name 'log.txt' -exec sed -i 's/date/dating/g' {} \;

답변2

디렉토리 루트에서 및 를 사용할 수 있습니다 find.sed

find . -type f -name 'log.txt' -exec sed -i 's/^date$/dating/' {} +
  • find . -type f -name 'log.txt'log.txt모든 파일을 재귀적으로 찾습니다.

  • -exec조건자에서 는 find파일 의 한 줄에서 로 대체 sed -i 's/^date$/dating/' {} +됩니다 .datedating

관련 정보