1
이 작업은 디렉토리 트리 내의 모든 .md 파일에 대해 이와 비슷하게 수행하고 싶습니다.디렉토리 전체의 폴더에 주어진 문자열을 바꿉니다.
perl -pi -e 's/FOO/BAR/g' *.md
이 작업은 디렉토리 트리 내의 모든 .md 파일에 대해 이와 비슷하게 수행하고 싶습니다.디렉토리 전체의 폴더에 주어진 문자열을 바꿉니다.
perl -pi -e 's/FOO/BAR/g' *.md
사용 find
:
find /path -name "*.md" -exec perl -pi -e 's/FOO/BAR/g' {} \;
bash parameter expansion를 사용하여 간단한 & 순수 bash는 한 줄 솔루션 : devnull에 의해 제안이 find
와 결합 될 수있다 물론
$ cd ~/
$ mkdir test
$ cd test/
$ touch foo{1..10}.md
$ ls
foo1.md foo10.md foo2.md foo3.md foo4.md foo5.md foo6.md foo7.md foo8.md foo9.md
$ for file in ./*.md; do mv "$file" "${file/foo/bar}"; done
$ ls
bar1.md bar10.md bar2.md bar3.md bar4.md bar5.md bar6.md bar7.md bar8.md bar9.md
:
$ files=($(find ./test -name "*.md"))
$ for file in "${files[@]}"; do mv "$file" "${file/foo/bar}"; done
또는 파이프 루프에 find
의 ouptut :
$ find ./test -name "*.md" | for file in $(xargs -0); do mv "$file" "${file/foo/bar}"; done
당신을 감사합니다! 잘 했어! (내가 올바른 디렉토리에 있었기 때문에 독자가 혼란 스러울 때를 대비하여 '/ path'를 './'로 변경했습니다) – user2251284