出力の最初の単語を印刷します。

出力の最初の単語を印刷します。

私は周りを見回しましたが、私が試しているものを見つけることができませんでした。 grep、sed、awkの知識が少し足りないと言いたいです。

エイリアスがあります。

alias upgradable='apt list --upgradable'

私に必要なものを手に入れます。

thunderbird/bionic-updates,bionic-security 1:68.4.1+build1-0ubuntu0.18.04.1 amd64 [upgradable from: 1:68.2.2+build1-0ubuntu0.18.04.1]
thunderbird-gnome-support/bionic-updates,bionic-security 1:68.4.1+build1-0ubuntu0.18.04.1 amd64 [upgradable from: 1:68.2.2+build1-0ubuntu0.18.04.1]

しかし、私はタイトルの最初の単語だけを知りたいです。たくさん試してみましたが失敗しました。

どうやって進めますか?

答え1

最初のものより前のすべてを印刷するには、次のものを/使用できますcut

alias upgradable='apt list --upgradable | cut -d'/' -f1

またはawk:

alias upgradable="apt list --upgradable | awk -F'/' '{print \$1}'"

答え2

すべての正規表現はd。

alias upgradable='apt list --upgradable | perl -pe "s|\s.*||" '

あなたの出力: thunderbird/bionic-updates,bionic-security

または alias upgradable='apt list --upgradable | perl -pe "s|/.*||" '

あなたの出力: thunderbird

perl -peすべてを1行として処理し、 '\ n'をプレーン文字として扱います。これにより、区切り文字を含む最初の白い文字(最初の例)または「/」(2番目の例)の後のすべての内容が削除されます。

答え3

あなたは次のように言及しましたgrep

apt list --upgradable | grep  -o "^.*\/" | cut -d'/' -f1  

awk私の速度と比べるとどうなるかわかりませんsed

関連情報