web-dev-qa-db-ja.com

最初の行の最初のフィールドを印刷するcutまたはawkコマンド

出力の最初の行の最初のフィールドを印刷しようとしています。以下がその例です。この出力からSUSEのみを印刷する必要があります。

# cat /etc/*release

SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2

cat /etc/*release | awk {'print $1}'で試しましたが、すべての行の最初の文字列を出力します

SUSE
VERSION
PATCHLEVEL
55
user3331975

選択した行から出力をキャプチャする場合は、 NR を指定します。

awk 'NR==1{print $1}' /etc/*release

別の(ugly)同じ方法を実現する方法は次のとおりです。

awk '{print $1; exit}'

出力の特定の行、たとえば行42から最初の文字列を取得する効率的な方法は次のとおりです。

awk 'NR==42{print $1; exit}'
140
devnull

NR組み込み変数を使用して行番号を指定します。

awk 'NR==1{print $1}' /etc/*release
17
jaypal singh

これを試して:

head -1 /etc/*release | awk '{print $1}'
7
developer
sed -n 1p /etc/*release |cut -d " " -f1

タブ区切りの場合:

sed -n 1p /etc/*release |cut -f1
2
Raha Pazoki

headの代わりにcatを使用できます。

head -n1 /etc/*release | awk '{print $1}'
2
Junaid18183

awk、sed、パイプ、それは重い

set `cat /etc/*release`; echo $1
1
Emmanuel

コンテナを実行しているプロセスを強制終了できます。

このコマンドを使用すると、Dockerコンテナに関連するプロセスを一覧表示できます。

ps -aux | grep $(docker ps -a | grep container-name | awk '{print $1}')

これで、killまたはkill -9で強制終了するプロセスIDができました。

0
user3322829

試して

sed 'NUMq;d'  /etc/*release | awk {'print $1}'

nUMは行番号です

ex. sed '1q;d'  /etc/*release | awk {'print $1}'
0
Jayesh Bhoi