Chinaunix

标题: 求grep匹配数值后的排序问题 [打印本页]

作者: yexingqi    时间: 2017-08-16 12:05
标题: 求grep匹配数值后的排序问题
请教一下, 我有一个文本内容做了grep的匹配,
我能让它的输出内容固定下来吗? 就按照我grep -E的顺序排列? 谢谢了!

cat aaa.txt
111
222
333
aaa
bbb
ccc


实际出来的结果是: cat aaa.txt |grep  -E "bbb|aaa|ccc|333|222|111"
111
222
333
aaa
bbb
ccc

我希望的结果是
bbb ; aaa ; ccc ; 333 ;222 ;111
如果内容是空的grep不到,那么就变成类似这样: bbb ;  ;  ; 333 ;222 ;111
就像我grep -E的顺序一样,请问如何实现呢? 谢谢了!

作者: moperyblue    时间: 2017-08-16 12:48

  1. #!/bin/bash

  2. keys=(bbb aaaa cccc 333 222 111)
  3. s=""
  4. for i in "${keys[@]}"; do
  5. grep -q "$i" aaa.txt && s+="$i;" || s+=";"
  6. done
  7. echo "${s%;*}"
复制代码

作者: yexingqi    时间: 2017-08-16 15:42
回复 2# moperyblue

谢谢,学习了,您的思路比较宽广!!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2