
openSUSEで利用可能なパッチを一覧表示すると、次の出力が生成されます。
次の詳細を生成するコマンドはですzypper patches
。コマンドを実行しても同じ結果が表示されます。zypper list-patches -a
Loading repository data...
Reading installed packages...
Repository | Name | Category | Severity | Interactive | Status | Summary
----------------------------------+--------------------+-------------+-----------+-------------+------------+---------------------------------------------------------------------------------------------------
openSUSE-Leap-15.0-Update | openSUSE-2018-1000 | recommended | moderate | --- | not needed | Recommended update for gnuhealth, proteus, tryton, trytond, trytond_purchase, trytond_stock_supply
openSUSE-Leap-15.0-Update | openSUSE-2018-1004 | security | low | --- | not needed | Security update for ffmpeg-4
openSUSE-Leap-15.0-Update | openSUSE-2018-1005 | security | moderate | --- | not needed | Security update for chromium
openSUSE-Leap-15.0-Update | openSUSE-2018-1006 | security | moderate | --- | applied | Security update for okular
openSUSE-Leap-15.0-Update | openSUSE-2018-1007 | recommended | moderate | --- | applied | Recommended update for tigervnc
たとえば、コマンドを使用して「状態」をソートしようとすると、sort -k 6,6 listing.txt | less
次のような出力が生成されます。
----------------------------------+--------------------+-------------+-----------+-------------+------------+---------------------------------------------------------------------------------------------------
Loading repository data...
Reading installed packages...
openSUSE-Leap-15.0-Update-Non-Oss | openSUSE-2018-1082 | recommended | moderate | --- | not needed | Security update for opera
openSUSE-Leap-15.0-Update-Non-Oss | openSUSE-2018-1240 | recommended | moderate | --- | not needed | Recommended update for opera
openSUSE-Leap-15.0-Update-Non-Oss | openSUSE-2018-1294 | recommended | low | --- | not needed | Recommended update for Regina-REXX, THE, ooRexx
openSUSE-Leap-15.0-Update | openSUSE-2018-1000 | recommended | moderate | --- | not needed | Recommended update for gnuhealth, proteus, tryton, trytond, trytond_purchase, trytond_stock_supply
openSUSE-Leap-15.0-Update | openSUSE-2018-1007 | recommended | moderate | --- | applied | Recommended update for tigervnc
Repository | Name | Category | Severity | Interactive | Status | Summary
区切り文字がスペースとタブの組み合わせであることを確認するために、vimで構文強調ルールを使用した場合はスペースのみを返します。
:syntax on
:set syntax=whitespace
ファイルが複数の区切り文字を使用しているようです。
- 使用する区切り文字を決定する最も効率的な方法は何ですか?
- 使用された区切り文字に基づいて列をソートするための最良かつ簡単な方法は何ですか?
答え1
ヘッダーをそのまま残したい場合を除き、これはうまくいきます。
tail -n +5 listing.txt | sort -b -k6 -t'|'
ファイルでスペースを頻繁に使用する場合(つまり、合計を混在させない場合)(「前のスペースを無視」)-b
オプションを省略できます。sort
| applied
| applied
しかし、私はa)プログラムにマシンが読める形式で書式設定するいくつかのオプションがあり、b)例えば使用する方が良いと思います。awk -F'|' '$6~/not needed/'
変えるsort
。
答え2
以下を使用できます。
awk 'NR<=4 {print $0; next } { print $0 | "sort -k6,6 -t\\|" }' listing.txt
awk
;代わりにlisting.txt
データをパイプします(awk
もちろん、listing.txt
最後は省略)。 -scriptはawk
最初の4つのヘッダー行をそのまま印刷します。残りの行はにパイプされますsort
。Sort
列 6 を並べ替え、パイプ記号と同じ区切り記号で識別します。