- - PR -
カラムのカウント
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2006-07-11 16:48
スクリプト内でカラムのカウントを行い
カラム数からフィールドの処理を行いたいのです。 もしくは左からのカウントでなく右からのカウントでもいいのですが。。。 色々調べてみましたがわかりませんでした。 因みに一行一行に対して処理(カラムをカウント)します。 どなたかご教授お願いします。 [ メッセージ編集済み 編集者: noku 編集日時 2006-07-11 17:00 ] |
|
投稿日時: 2006-07-11 18:05
何のカラムなんだYo(w
|
|
投稿日時: 2006-07-11 19:04
ぶさいくろうぬしさん
コメントありがとうございます。 言葉足らずでした。 すいません。 テキストフィールドのカラムです。 awkやcutで区切るといえば分かりやすいでしょうか? |
|
投稿日時: 2006-07-11 19:19
適当なファイルの列の数を数えたいのなら awk で調べられます。
例えば下に示したのファイル tmp.dat の各行に含まれる要素の数を調べる場合。 $ awk '{printf("%s\\n",NF)}' tmp.dat 2 3 4 /**** tmp.dat ****/ a 938 b 135 gg c 547 gg bbb あとはこの出力を適当に使ったら良いと思います。 |
|
投稿日時: 2006-07-11 23:00
こんばんは。
データの区切り文字がスペースであれば、 $ LINE="It is fine today." $ echo $LINE | wc -w という方法もあります。 データの区切り文字がスペースでない場合は、tr や sed などで編集してから、かなぁ。 [ メッセージ編集済み 編集者: はゆる 編集日時 2006-07-12 01:54 ] |
|
投稿日時: 2006-07-13 21:05
皆さんありがとうございました。
他の手段を使いました。 rimmerさん ありがとうございます。 いいですね!! 今後参考にします。 はゆるさん 区切りがスペースで無いんですよ。 /でした。 はゆるさんの言う手段は使いませんでした。 sedやtrって一度テキスト落とさないといけなかったでしょうか? なるべく中間ファイルを作らず結果を出そうと思ったので。 |
|
投稿日時: 2006-07-13 23:01
$ LINE=It/is/fine/today.
$ echo $LINE | tr / '\n' | wc -l マニュアルは、読んでおいたほうがいいですよ。 ---------- でも、フィールドを処理させるには、awk のほうがシンプルですね (^^; $ echo $LINE | awk -F/ '{print NF}' データの区切り文字が、スペースやタブだった場合で、 データが歯抜けになる可能性がある場合には、 FS にも注意してくださいね。 # echo や read を使うなら、IFS 変数に注意 [ メッセージ編集済み 編集者: はゆる 編集日時 2006-07-14 15:41 ] |
1
