shell:處理文本
阿新 • • 發佈:2018-02-22
awk 去重復 als for ash bin class one 如果 有如下文本,其中前5行內容為
1111111:13443253456
2222222:13211222122
1111111:13643543544
3333333:12341243123
2222222:12123123123
用shell腳本處理後,按下面格式輸出:
[1111111]
13443253456
13643543544
[2222222]
13211222122
12123123123
[3333333]
12341243123
#!/bin/bash sort -n 1.txt |awk -F ':' '{print $1}'|uniq >id.txt for id in `cat id.txt` do echo "[$id]" awk -F ':' '$1=="'$id'" { print $2}' 1.txt done
解析:
sort -n 使用純數字排序
awk -F ':' '{print $1}' 以“:”冒號為分隔符,打印第一字域(第一部分)
uniq 去重復的行
>id.txt 輸出重定向到id.txt文本中
awk -F ':' '$1=="'$id'" { print $2}' 1.txt :以“:”冒號分隔,如果第一域的值等於$id的值,打印第二域。
純屬個人見解,不正之處請指出
shell:處理文本