微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unix – 在shell脚本中sorting

如何根据字段位置对文件进行sorting?

例如。 我需要对下面的给定文件进行sorting。 基于第4,5和8位。 请帮忙。 我试过下面的命令,它不工作:(

sort -d -k 3.42,44 -k 4.47,57 -k 5.59,70 -k 8.73,82 010835 03 0000000010604CAQZ 0912104072 QNZAW AZ ATC 1704698441 010835 03 0000000010604CZWX 7823775785 WDXSD GZ DDF 2804698441 010835 03 0000000010604CBEC 8737518498 DICDC CY HWT 0904698441 010835 03 0000000010604CERV 5648240160 FFVFV DZ UXE 8404698441 010835 03 0000000010604CTTV 2555338251 TTBGB FZ EZS 9504698441 010835 03 0000000010604CADB 1465045344 BINHH TZ QKZ 4604698441 010835 03 0000000010604CIFN 2374902637 NOMJU VZ XHU 6704698441 010835 03 0000000010604COGM 3281553523 JSLKI YZ CLK 5804698441 010835 03 0000000010604CPCL 4190899186 PQJLL QZ UPL 3004698441

linux在列中sorting

读取行时,awk $行并写入variables

linux剪切命令的字段值条件

试试这个命令:

sort -k4,4 -k5,5 -k8,8 input.txt

从sort手册:

-k,--key=POS1[,POS2] start a key at POS1,end it at POS2 (origin 1) POS is F[.C][OPTS],where F is the field number and C the character position in the field. OPTS is one or more single-letter ordering options,which override global ordering options for that key. If no key is given,use the entire line as the key.

在你的命令中:

-k 3.42,44表示start from (42th char of 3rd field) to (44th field) 。

你的意思是-k 3.42,3.44

你可以尝试:

sort -d -t $'n' -k 1.42,1.44 -k 1.47,1.57 -k 1.59,1.70 -k 1.73,1.82 input.txt>

你会得到这个:

010835 03 0000000010604CADB 1465045344 BINHH TZ QKZ 4604698441

010835 03 0000000010604CAQZ 0912104072 QNZAW AZ ATC 1704698441

010835 03 0000000010604CBEC 8737518498 DICDC CY HWT 0904698441

010835 03 0000000010604CERV 5648240160 FFVFV DZ UXE 8404698441

010835 03 0000000010604CIFN 2374902637 NOMJU VZ XHU 6704698441

010835 03 0000000010604COGM 3281553523 JSLKI YZ CLK 5804698441

010835 03 0000000010604CPCL 4190899186 PQJLL QZ UPL 3004698441

010835 03 0000000010604CTTV 2555338251 TTBGB FZ EZS 9504698441

010835 03 0000000010604CZWX 7823775785 WDXSD GZ DDF 2804698441

这个想法是使用$' n'(换行符)是字段分隔符,所以每行是1个字段

来自http://www.computing.net/answers/unix/sort-file-by-position-/7735.html的启示

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐