バックグラウンド
SSHサーバーを実行しており、このユーザーを削除する必要があります。このユーザーは、最初に強制終了する必要のあるいくつかのプロセスを現在実行しているため、削除できません。
これは、現在使用しているユーザーのすべてのプロセスIDを見つけるために現在使用しているパイプラインです。
ps -u user | awk '{print $1;}'
出力は次のようになります。
PID
2121
2122
2124
2125
2369
2370
これをパイプkill -9
してすべてのプロセスを強制終了し、次のようにこの愚かなユーザーを削除できます。
ps -u user | awk '{print $1;}' | sudo xargs kill -9
しかし、これはPID
ヘッダーのために機能しません:
kill: failed to parse argument: 'PID'
質問
入力の最初の行を削除するには、単純なUnixコマンドが必要だと考えています。
tail
これに使用できることは承知していますが、表示する行数を正確に把握するために、入力に含まれる行数をカウントしたくありません。
head
またはtail
逆のようなものを探しています(ストリームの最初/最後の部分のみを表示する代わりに、ストリームの開始/終了以外のすべてを表示します)。
注意
コマンドの| grep [[:digit:]]
後に追加するだけでこの問題を解決できましたawk
が、他のシナリオでは非常に役立つと思うので、ファイルの最初の行を削除する方法を探しています。
awk
コマンド)がどのように機能するかを説明します。
NR
例えばを使用してヘッダーレコード(行)を除外できますawk 'NR>1 {print $1;}'
。いっそ-使用pgrep -u
かpkill -u