AWK 또는 sed를 사용하여 .csv 파일 일괄 덮어쓰기

AWK 또는 sed를 사용하여 .csv 파일 일괄 덮어쓰기

.csv 파일(다른 확장자가 없는 파일)로 채워진 많은 하위 디렉터리가 있는 디렉터리가 있습니다.

.csvsed/AWK 명령을 사용하여 모든 파일을 한 번에 덮어쓰고 싶습니다 . 디렉토리 구조가 변하지 않는다면 모든 것을 다른 방향으로 옮기는 것도 좋습니다.

내가 사용하는 명령은 다음과 같습니다

  1. $ awk 'BEGIN{FS=OFS=","} {sub("^([^/:]+://)?(www[.])?","",$1); sub("/.*","",$1)} 1' input_file
  2. $ sed -E 's~(^[^/]*//)?(w+\.)?([^/]*)[^,]*~\3~' input_file
  3. $ sed -E 's#^(.*://)?(www\.)?##; s#^([^,/]+)[^,]*#\1#' input_file

파일별로 편집하는 대신 모든 파일을 한 번에 편집하는 방법

답변1

GNU awk 사용:

find . -type f -name '*.csv' -exec awk -i inplace 'script' {} +

GNU sed 사용:

find . -type f -name '*.csv' -exec sed -i -E 'script' +

관련 정보