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' +

関連情報