1

テキスト ファイルを読み取り、ファイル内の合計タブを出力するコードを作成しました。しかし、ディレクトリ内のすべてのファイルを読み取り、各ファイルのタブを数えて、結果を単一の出力ファイルに出力したいのですが、どうすればよいですか?

#!/bin/sh

FILE='unit-1-slide.txt'
TABCOUNT=$(tr -cd '\t' < $FILE  | wc -c)
echo $TABCOUNT "tabs in file" $FILE >> output.txt
echo "Done!"
4

1 に答える 1

2

次のようなすべてのファイルをループするだけです。

#!/bin/bash    

for file in *; do
    if [ -f "$file" ]; then
        tabs=$(tr -cd '\t' < "$file"  | wc -c);
        echo "$tabs tabs in file $file" >> output
    fi
done

実行後のファイル出力は次のようになります。

8 tabs in file file1
4 tabs in file file2
0 tabs in file file3
3 tabs in file file4
...

ノート:

スペースなどの特殊文字を含むファイル名を処理するには、常に変数を引用符で囲む必要があります。また、それがディレクトリではなくファイルであるかどうかも確認することをお勧めします。

于 2013-03-20T11:40:57.483 に答える