- ベストアンサー
特殊文字の数を調べる
ファイルの中から、特殊文字(フォームフィード"x0c")がいくつ存在するかを調べたいのですが、上手くとれません。 ファイル容量が大きいため、効率良く調べたいのですが、下記の様にはき出した出力ファイルの長さを調べたのですが、出力には改行(x0a)も含まれてしまいます。 sed -e 's/[^\f]//g' text.in > text.out sed -e 's/[^\014]//g' test.txt > text.out sed以外でも良いので、shellなどを利用し解決する方法をお教え頂けませんでしょうか。よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
perlなら perl -e 'while(<>){$ctr+=s/\f//g;}print $ctr' text.in > text.out
その他の回答 (1)
- liar_adan
- ベストアンサー率48% (730/1515)
C言語を使うのはダメでしょうか? 以下の点線内部を切り取って、charcnt.c(名前は適当)とし、 gcc(Linux等なら)で >gcc -o charcnt charcnt.c とするとcharcntという実行ファイルができます。 >./charcnt < text.in とするとカウントされます。 日本語が混じっているファイルでも、 文字コードがシフトJISかEUCなら動くはずです。 JISコードとUnicodeの場合はよくわからないですが…。 よければ使ってください。 ------------ #include <stdio.h> int main(void){ int c; int count = 0; while((c = getchar()) != EOF){ if(c == 0x0c)count++; } printf("%d\n", count); return 0; } ---------------
お礼
回答ありがとうございます。 Cはあまり知らないのですが、試してみます。
お礼
一行でできるとは素晴らしい! 試してみましたが、希望通りできました。 感謝です、ありがとうございました。