私はこれがIPとユーザー名を印刷していることを知っていますが、誰かが私にそれを説明できますか?とても簡単です。ありがとうございます! Unix

私はこれがIPとユーザー名を印刷していることを知っていますが、誰かが私にそれを説明できますか?とても簡単です。ありがとうございます! Unix

これはIPとユーザー名を印刷することを知っていますが、誰かが私に簡単に説明することができます。ありがとうございます! Unix

w -hs|awk '{printf "%s\t%s\n",$1,$3}'

答え1

w -hs- 誰がシステムにログインしたが使用しているかを出力します。-hs出力をよりきれいにするフラグ

その後、結果は出力フォーマットを指定するために使用されるオブジェクトw -hsにパイプされます。awkprintf

%sTABを表す書式指定子です\t\n改行文字を表します。この後に$1およびがあります$3。したがって、これはすべて、awk '{printf "%s\t%s\n",$1,$3}'出力の最初と3番目の文字列を印刷し、その間にタブ文字を入れてから、結果を改行文字として印刷することを意味します。

私にとっては、これを使用するのと同じです。awk '{print $1, "", $3}'

答え2

それを破壊する:

まず、「パイプ」記号を確認してください|。これは私たちにとってこれです二つの部分注文する:出力さらなる処理のために、最初の命令の内容はw -hs2番目の命令に「転送」されますawk '{printf "%s\t%s\n",$1,$3}'

最初のコマンドは、w -hsシステムにログインしている人に関する情報を出力します(man w詳細については、参考資料を参照)。この例では、出力形式を指定するために2つのオプションとが-h追加されています。-s詳細についてCOMMAND-LINE OPTIONSはのセクションを参照してくださいman w。より良い方法は、端末にこのコマンドを入力して確認することです。

の出力w -hsはで「パイプ」されます。つまり、 の出力で動作するというawk意味です。awkw -hs

awkテキスト処理に一般的に使用される言語です。man awk詳細を確認するか、awkインターネット上の多数のチュートリアルのいずれかをご覧ください。awkコードはかなり密集した、これを理解するには少し研究が必要な場合があります。

これ表現する '{printf "%s\t%s\n",$1,$3}'awkパイプで接続されたデータで何をすべきかを伝えますw -hs。要約すると、これらのガイドラインは次のとおりです。

、を使用してprintfフィールド(または列)1と3()の値をタブ()で区切られた「文字列」として印刷し、最後に$1,$3「改行」()を追加します。%s\t\n

これは簡単な要約であるawkため、多くの重要な詳細は省略されています。あなたの興味や職務の説明に詳しい情報が必要な場合は、awkさまざまなオンライン資料や印刷資料を参照してください。

関連情報