1. ホーム
  2. linux

[解決済み] unix - ファイル内の列の数

2023-06-19 04:47:54

質問

このようなデータを持つファイル(つまりstores.datファイル)があるとします。

sid|storeNo|latitude|longitude
2|1|-28.03720000|153.42921670
9|2|-33.85090000|151.03274200

列名の数を出力するコマンドは何でしょうか?

i.e. 上記の例では4となります。(1行目のパイプ文字数+1)

のようなものを考えていました。

awk '{ FS = "|" } ; { print NF}' stores.dat

が、最初の行だけでなくすべての行を返し、最初の行では 4 ではなく 1 を返します。

どのように解決するのですか?

awk -F'|' '{print NF; exit}' stores.dat 

最初の行のすぐ後で終了してください。