シェルスクリプトを始めたばかりでawkは基本の基本しか分かりません。
人の作ったシェルスクリプトを読んでいて分からない部分を教えてください。
全体的にわからないのですが、
特に以下の $0から始まる行の読み方が、どの分野を調べたらよいのか見当もつかないので。
Func(){
local inputfile=$1
gawk --posix -v part=$[{part} '
BEGIN{
A = 0
B = 0
}
$0 ~ /^ [0-9]{3} / && $0 !~ part {
..
_}
END{
print A,B
}
' $inputfile
}
No.2ベストアンサー
- 回答日時:
awkのスクリプトの中の事なので、
> awkは基本の
の範囲内です。
~ は正規表現でマッチする言う演算子で、!~ は正規表現でマッチしないという演算子です。= と != はわかりますよね?その正規表現版です。
$0 ~ /^ [0-9]{3} / && $0 !~ part
は、
$0 が /^ [0-9]{3} / にマッチして、かつ、 part にマッチしない場合
という意味です。
ありがとうございます。全然わかっていなかったです。昨日本屋に行きましたが、awk自体どの本を読めば、という状態でしたが、糸口になる回答で助かりました。!~が!=とは、全く想像もつきませんでした。
No.3
- 回答日時:
$0 ~ /^ [0-9]{3} / && $0 !~ part {
のどこがわかっていて、どこがわからないのでしょうか?
http://www.kt.rim.or.jp/~kbk/gawk-30/gawk_5.html
等を参照のこと。
○ awkの基本文法等は大丈夫ですか?
・「 条件 {条件が真だったら実行するコマンド等} 」という書式になっている。
・ && は 論理積(and)、等
○ awkのスクリプト内では、awkの正規表現を使います。
○ 変数等 ~ 正規表現 は 「変数等」が正規表現にマッチするなら真
○ 変数等 !~ 正規表現 は 「変数等」が正規表現にマッチしなければ真
○正規表現には /正規表現/ の形でスラッシュで囲んだ 「正規表現定数」 と、変数等の式を使った「動的正規表現」がある。
○ $0 ~ /^ [0-9]{3} / は正規表現定数を使ったもの。
正規表現定数の中では、空白は「空白文字にマッチする」パターンとして有効なので注意する。
上記が「先頭から空白文字,3桁の数字,空白文字」というパターンなのか、空白文字が不要なのかは元のスクリプトをよく確認する。
○ $0 !~ part は動的正規表現を使ったもの
このシュルスクリプトの場合、awkの変数part は、awkのスクリプト中ではなく、gawkコマンドの-vオプションで part=$[{part} と指定されている。
この部分はシェルスクリプトとして解釈しなければなないのだが、$[{part} という書き方がなんかおかしいので確認すること。
ありがとうございます。
どこがわからないかというと、どこがひとまとまりとして読むのかわからず、調べ方もわからなかったのですが、
スラッシュに囲まれたところが正規表現とのこと。それを念頭に、もう一度解答を読んで理解したいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) awkの BEGIN{RS=""} で空行を削除できるが、削除できる仕組みが分からない。 1 2023/05/02 14:14
- その他(プログラミング・Web制作) awkの正規表現での最左最短マッチング 3 2022/07/01 00:10
- 教えて!goo このサイトで専門用語で質問して専門用語が分かる回答者を期待したが回答が得られない その例として例えば 4 2023/05/06 22:29
- その他(プログラミング・Web制作) awkの$NR 2 2022/10/24 11:11
- その他(プログラミング・Web制作) awkの文字列比較はPOSIXロケールまたはCロケールにおいてバイナリ値の比較に使えるか gawkな 1 2023/04/22 09:21
- その他(プログラミング・Web制作) atcoder python コードへの助言 2 2022/08/12 15:31
- 英語 提示文の"part of"のニュアンスについて 4 2022/08/20 15:00
- UNIX・Linux Debianでシェルスクリプトにおいて正規表現の条件文で[[,]]が使えないので困ってます 2 2023/01/20 09:27
- TOEFL・TOEIC・英語検定 この英文の構造を教えて下さい! 1 2022/05/24 12:04
- 英語 Like talented actors, leaders with string emotiona 1 2023/08/17 22:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
bashでシングルクォート内の変...
-
ubuntu(linux)のシャットダウン...
-
[Linux初心者]Ubuntu22.04.3LTS...
-
自作のウェブサイトを友人に見...
-
AWSでSSH接続をしたいのですが...
-
ubuntuのシャットダウンが進ま...
-
ubuntuで デイスク/deb/loopと...
-
Ubuntu系とCentOS系の違いはな...
-
lubuntuのインストールが終わり...
-
Windowsのローカルディレクトリ...
-
linuxサーバーのキャッシュをク...
-
Linuxのパーティション番号の変...
-
Ubuntu でinvalid filenameとな...
-
LinuxのOSのインストールについて
-
年末ですが大至急お願い申し上...
-
Apach Solr-8.4.1のチューニン...
-
tarで纏める際に、複数場外した...
-
Postfixでドコモメールに送信す...
-
ssl_error_logのエラー内容(AH...
-
ssl_request_logの必要性について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ubuntu(linux)のシャットダウン...
-
bashでシングルクォート内の変...
-
ubuntuのシャットダウンが進ま...
-
Windowsのパソコンを使って仮想...
-
ubuntuで デイスク/deb/loopと...
-
AWSでSSH接続をしたいのですが...
-
Ubuntu on Xorgのログインについて
-
LinuxのノートパソコンでDVDコ...
-
linuxサーバーのキャッシュをク...
-
Postfixでドコモメールに送信す...
-
Windowsのローカルディレクトリ...
-
tarで纏める際に、複数場外した...
-
Linux のシェルスクリプトの強...
-
Linux Mint 日本語入力できなく...
-
ホストオンリーアダプタで接続...
-
ubuntuのサーバー(virtual box)...
-
VirtualBox ゲストOSにPC内蔵HD...
-
shellscript内のコマンドを、su...
-
Linux Ubuntu22.4の起動時エラ...
-
Ubuntu でinvalid filenameとな...
おすすめ情報