Chinaunix首页 | 论坛 | 博客
  • 博客访问: 310628
  • 博文数量: 94
  • 博客积分: 2220
  • 博客等级: 大尉
  • 技术积分: 975
  • 用 户 组: 普通用户
  • 注册时间: 2004-12-17 21:17
文章分类

全部博文(94)

文章存档

2011年(5)

2010年(11)

2009年(1)

2008年(2)

2006年(1)

2005年(65)

2004年(9)

我的朋友

分类: LINUX

2005-08-17 12:26:58

今天作系統權限的管控時需要將兩個文件中相同的內容全部刪除.
系統中所有的用戶記錄文件和沒有操作權限的用戶記錄文件.兩個文件相關后的結果就是所有能使用系統的用戶列表了.
研究了一兩個小時后終於大功告成了.

文件一內容如下: (f1.txt)
111
222
333
444
555
666
777
888
999
文件二內容如下: (f2.txt)
aaa
bbb
ccc
ddd
eee
111
fff
222
333
jjj
kkk
444
整理后的文件三內容如下: (f3.txt)
aaa
bbb
ccc
ddd
eee
fff
jjj
kkk

作法如下:
1.先合併兩個文件到一個臨時文件中
cat f1.txt f2.txt > temp1.txt
2. 對生成的臨時文件內容進行排序,將排序后的結果放到一個臨時文件中
sort +0 -0 -o temp2.txt temp1.txt /* 以第一個字段對文件temp1.txt進行排序,
將排序后的結果放到temp2.txt文件中 */
3. 對排序后的文件進行重複行的刪除
uniq -u temp2.txt > f3.txt /*對重複的行全部刪除*/
注: 如果想對重複的記錄保留一個,其餘的刪除則用法如下.
uniq -d temp2.txt > f3.txt /*對重複的行只保留一行*/

至此 f3.txt中的內容就是兩個文件相減后的內容了.

阅读(1933) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~