首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用多个分隔符对文件进行排序?

如何使用多个分隔符对文件进行排序?
EN

Unix & Linux用户
提问于 2019-01-20 16:46:13
回答 1查看 2.2K关注 0票数 1

列出openSUSE中的可用修补程序将得到以下输出。

在下面的详细信息中得到的命令是zypper patches。在运行命令zypper list-patches -a时也会显示相同的结果。

代码语言:javascript
复制
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命令对“状态”进行排序时,会产生以下输出。

代码语言:javascript
复制
----------------------------------+--------------------+-------------+-----------+-------------+------------+---------------------------------------------------------------------------------------------------
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中的语法突出显示规则检查分隔符是否是空格和制表符的组合时,它只返回空格。

代码语言:javascript
复制
:syntax on
:set syntax=whitespace 

文件似乎可以使用多个分隔符。

  • 确定使用中的分隔符最有效的方法是什么?
  • 根据使用中的分隔符对列进行排序的最佳和最简单的方法是什么?
EN

回答 1

Unix & Linux用户

发布于 2019-01-20 17:16:45

你可以用这个:

代码语言:javascript
复制
awk 'NR<=4 {print $0; next } { print $0 | "sort -k6,6 -t\\|" }' listing.txt

它在listing.txt上运行D2;相反,您可以将数据输送到awk (当然,在最后省略listing.txt )。awk-script按原样打印头四行。其余的行用管道连接到sort中。Sort对第6列进行排序,使用与管道符号相等的分隔符标识它。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/495623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档