
No.3ベストアンサー
- 回答日時:
おそらく現在の多くのawkでは#2さんのでもいいですけど、
FS="[][() ]+"
が本来の正規表現の書き方です。文字 ] は [ の直後に書きます。この場合は閉じカッコとみなされません。また、[ ] の内部の [ も特殊文字でない。
[ ] 内に書く順序に注意すれば [ ] に \によるエスケープは必要ありません。というか古いプログラムだと [ ] 内では \ はエスケープの意味を持たないかもしれません。つまり、古いawkだと、FS="[ \\[\\]()]+" だと正しく解釈してくれないかもしれません。まあ、今時そんな古いawkを使うことは無いでしょうけど。
No.2
- 回答日時:
No1さん、おしい!!
FS="[ \\[\\]()]"
にすれば、
MN
が表示されましたよ。
(括弧の前の\は不要でした)
ただし、$9で、0.5を取得したいのでしたら
FS="[ \\[\\]()]+"
としないと、ダメでした。
No.1
- 回答日時:
変数FS(-Fオプションで設定される変数)の意味合いは…
FSが1文字のとき:その文字がセパレータ
FSが空文字のとき:個々の文字がセパレータ
FSが1文字の空白のとき:空白・タブ・改行がセパレータ
それ以外のとき:FSを正規表現とする
正規表現で書いてやれば出きるのでは?
と想像してみました。
FS="[ \[\]\(\)]"
今、手元に環境が無いので実験してません。
実験してみてください。
参考URL:http://www.linux.or.jp/JM/html/GNU_gawk/man1/gaw …
この回答への補足
試してみました。うまくいってないようです。
以下のようなスクリプトで実行してみました。
#!/bin/nawk -f
BEGIN{ FS="[ \[\]\(\)]" }
{
print $2;
}
サンプルデータは
DEVICE MN(NQN) V2NG POLS NSD NSD PSUB [0.5]
このようなデータが複数行あるものです。
”print $1”とすると行が全て表示されます。
”print $2"以降を表示させようとすると空白
行が出力されます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラム言語
-
vba 正規表現について教えてく...
-
pythonでのローカルファイルか...
-
if関数とは?
-
pythonについて(初心者です)
-
画像生成AIのプロンプトの作り...
-
プログラム上での行のマージ方法
-
共テのプログラミング言語はPyt...
-
プログラミングについて
-
Pythonのエラーメッセージをコ...
-
今のプログラミング言語
-
著作権法について
-
自作scratch アニメの商用利用
-
プログラミングに興味があるの...
-
Google ColaboでGUI作成
-
CSVファイルの複数行削除
-
プログラミングのやり方ざっく...
-
sublimit textっていうエディタ...
-
数学、プログラミング、物理、...
-
OS入ってる機器のソフト・アプ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラム言語
-
vba クリップボードクリアにつ...
-
プログラミングについて
-
画像生成AIのプロンプトの作り...
-
自作scratch アニメの商用利用
-
今のプログラミング言語
-
CSVファイルの複数行削除
-
Python... 環境設定 初心者です...
-
Python 3.12.2 か一番最新のパ...
-
数学、プログラミング、物理、...
-
パイソンのソースコードをChatG...
-
pythonの実行に関する質問
-
pip --versionがエラーになる
-
Geminiフォーム 画像生成で 人...
-
OS入ってる機器のソフト・アプ...
-
Google ColaboでGUI作成
-
google Colabでmatplotlibの描...
-
Webサイト内に埋め込んだmp4動...
-
初心者powershellのPS1ファイル...
-
VBAでパワーシェルを実行したい...
おすすめ情報