.ts
다음 텍스트로 끝나는 모든 파일을 재귀적으로 추가하고 싶고 export {};
최소한 폴더를 제외해야 합니다 node_modules
.
나는 시도했다:
find . f ! -path '*/node_modules/*' -iname "*.ts" -exec sed -e '1 i\export {}' \;
결과: 각 파일에 대해 다음을 얻습니다.sed: 1: "1 i\export ./src/query/ ...": extra characters after \ at the end of i command
업데이트: gnu-sed
macOS에 설치하고 사용해 보았습니다 gsed
. 하지만 작동하지 않는 것 같습니다. 무한히 실행되는 것 같습니다.
답변1
왜냐하면:
문자열은
'{}'
다음으로 대체됩니다.현재 파일 이름 find의 일부 버전에서처럼 별도의 인수뿐만 아니라 명령 인수에 나타날 때마다 처리됩니다.\
쉘 확장으로부터 보호하기 위해 두 구성 모두 이스케이프하거나 인용해야 할 수도 있습니다 .
다음 방법을 사용하십시오.
find . -type f ! -path '*/node_modules/*' -iname "*.ts" -exec sed -i '1 i\export\{\}' {} \;
-i
, --in-place
- sed
파일을 제자리에서 편집하는 옵션