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을 정렬하고 파이프 기호와 동일한 구분 기호로 식별합니다.