これはIPとユーザー名を印刷することを知っていますが、誰かが私に簡単に説明することができます。ありがとうございます! Unix
w -hs|awk '{printf "%s\t%s\n",$1,$3}'
答え1
w -hs
- 誰がシステムにログインしたが使用しているかを出力します。-hs出力をよりきれいにするフラグ
その後、結果は出力フォーマットを指定するために使用されるオブジェクトw -hs
にパイプされます。awk
printf
%s
TABを表す書式指定子です\t
。\n
改行文字を表します。この後に$1
およびがあります$3
。したがって、これはすべて、awk '{printf "%s\t%s\n",$1,$3}'
出力の最初と3番目の文字列を印刷し、その間にタブ文字を入れてから、結果を改行文字として印刷することを意味します。
私にとっては、これを使用するのと同じです。awk '{print $1, "", $3}'
答え2
それを破壊する:
まず、「パイプ」記号を確認してください|
。これは私たちにとってこれです二つの部分注文する:出力さらなる処理のために、最初の命令の内容はw -hs
2番目の命令に「転送」されますawk '{printf "%s\t%s\n",$1,$3}'
。
最初のコマンドは、w -hs
システムにログインしている人に関する情報を出力します(man w
詳細については、参考資料を参照)。この例では、出力形式を指定するために2つのオプションとが-h
追加されています。-s
詳細についてCOMMAND-LINE OPTIONS
はのセクションを参照してくださいman w
。より良い方法は、端末にこのコマンドを入力して確認することです。
の出力w -hs
はで「パイプ」されます。つまり、 の出力で動作するというawk
意味です。awk
w -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
さまざまなオンライン資料や印刷資料を参照してください。