다음과 같은 디렉토리 구조가 있습니다.
Folder1/
|____file.txt
Folder2/
|____file.txt
Folder3/
|____file.txt
:
Foldern/
|____file.txt
디렉토리의 각 .txt 파일에는 디렉토리 이름으로 바꾸려는 단어가 있습니다.
file.txt :
"name": "Engineering",
Engineering이라는 단어를 Folder1과 같은 디렉토리 이름으로 바꾸려고합니다.
"name": "Folder1"
내 첫 시도는 다음과 같습니다.
for f in Folder*; do (cd $f; echo $f; sed -i -e "s/Engineering/Folder*/" file.txt); done
그러나 sed 명령은 Folder*
폴더 번호 로 표시되지 않는 것 같습니다 .
cd
디렉토리 에 들어갈 필요가 없습니다 . 파일 경로를 반복하고 폴더 이름을 추출 할 수 있습니다.
for file in Folder*/file.txt; do
sed -i -e "s/Engineering/${file%%/*}/" "$file"
done
매개 변수 확장 ${file%%/*}
은 가장 긴 접미사를 제거 /*
하고 폴더 이름을 남깁니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다