ディレクトリ内のすべてのファイルをループして、5 列目の値を 3 で割るにはどうすればよいですか? ファイル自体に変更を加えて、最初の行はフィールド ヘッダーであるため、スキップする必要があります。フィールドはコンマで区切られます。
質問する
70 次
3 に答える
1
このスクリプトはトリックを行います:
#!/bin/bash
script=$(basename $0)
find . -maxdepth 1 -type f | while IFS= read -r file
do
if [[ $(basename "$file") != "$script" ]]; then
awk 'NR>1{$5=$5/3}1' FS=, OFS=, "$file" > tmp
mv tmp "$file"
fi
done
于 2013-07-09T19:24:51.987 に答える
0
これでうまくいくはずです(すべてのファイルが1つのディレクトリの下にある場合、そうでない場合はfindを使用してください):
for f in /path/to/dir/* ; do
awk 'BEGIN{FS=OFS=","}NR>1{$5=$5/3}1' "$f" > "$f".tmp && mv "$f".tmp "$f"
done
于 2013-07-09T19:24:43.590 に答える