我有一个包含许多子目录的目录,这些子目录都充满了 .csv 文件(没有其他扩展名的文件)。
我想.csv
用 sed/AWK 命令一次性覆盖所有文件。如果目录结构不改变,将所有内容移动到另一个方向也很好。
我使用的命令是:
$ awk 'BEGIN{FS=OFS=","} {sub("^([^/:]+://)?(www[.])?","",$1); sub("/.*","",$1)} 1' input_file
$ sed -E 's~(^[^/]*//)?(w+\.)?([^/]*)[^,]*~\3~' input_file
$ 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' +