私はただ楽しむためにawkを使ってインタラクティブメニュースクリプトを作成しました。ユーザー入力を受け取り、ifステートメントを使用して応答が次のものかどうかを知ることができますgetline<file
(前述の変数を定義しました)。私はこれを使用しました:
while ((getline<file) > 0) {print};
しかし、簡単、中間、難しさ、クレイジーなオプションを追加することで、より粒度を追加したいと思います。ユーザーがファイルに単純な次のgetlineと入力し、ファイルから一致するものだけを印刷した場合は、次のことをしたいと思います。より粒度を追加してください。
例: 一致させるには、一般行を入力します。
awk -F " " '/inet / {print $6}'
したがって、一致するもののみが印刷されますinet
。
awk
ループを介してスクリプトgetline
にこの原則をどのように適用できますか?
助けてくれてありがとう。
デフォルトでは、以下を使用してファイル全体を印刷しないでください。
while ((getline<file) > 0) {print};
私は次のようなものが欲しい:
while ((getline<file) > 0) /Easy: / {print};
単一行の例(同様の出力が好ましい):
awk -F " " '/Easy: / {print $2}'
そうでなければ
awk '/Easy: / {print $0}'
答え1
while ( (getline < file) > 0 ) {
if (/Easy: /) {
print $2
}
}
すべてを読んで理解していることを確認してください。http://awk.freeshell.org/AllAboutGetlinegetlineの使用を検討している場合。