- PR -

カラムのカウント

1
投稿者投稿内容
noku
常連さん
会議室デビュー日: 2005/07/21
投稿数: 20
投稿日時: 2006-07-11 16:48
スクリプト内でカラムのカウントを行い
カラム数からフィールドの処理を行いたいのです。
もしくは左からのカウントでなく右からのカウントでもいいのですが。。。

色々調べてみましたがわかりませんでした。

因みに一行一行に対して処理(カラムをカウント)します。

どなたかご教授お願いします。

[ メッセージ編集済み 編集者: noku 編集日時 2006-07-11 17:00 ]
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-07-11 18:05
何のカラムなんだYo(w
noku
常連さん
会議室デビュー日: 2005/07/21
投稿数: 20
投稿日時: 2006-07-11 19:04
ぶさいくろうぬしさん
コメントありがとうございます。
言葉足らずでした。
すいません。

テキストフィールドのカラムです。
awkやcutで区切るといえば分かりやすいでしょうか?


rimmer
会議室デビュー日: 2005/05/20
投稿数: 6
投稿日時: 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

あとはこの出力を適当に使ったら良いと思います。
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2006-07-11 23:00
こんばんは。

データの区切り文字がスペースであれば、

$ LINE="It is fine today."
$ echo $LINE | wc -w

という方法もあります。
データの区切り文字がスペースでない場合は、tr や sed などで編集してから、かなぁ。

[ メッセージ編集済み 編集者: はゆる 編集日時 2006-07-12 01:54 ]
noku
常連さん
会議室デビュー日: 2005/07/21
投稿数: 20
投稿日時: 2006-07-13 21:05
皆さんありがとうございました。
他の手段を使いました。

rimmerさん
ありがとうございます。
いいですね!!
今後参考にします。

はゆるさん
区切りがスペースで無いんですよ。
/でした。
はゆるさんの言う手段は使いませんでした。

sedやtrって一度テキスト落とさないといけなかったでしょうか?
なるべく中間ファイルを作らず結果を出そうと思ったので。
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)