shell script 大量刪除匹配資料 [論壇 - Ubuntu 程式設計]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊



shell script 大量刪除匹配資料
會員一級
註冊日期:
2015/1/13 9:16
所屬群組:
已註冊使用者
等級: 1
HP : 0 / 18
MP : 2 / 260
EXP: 73
離線
Dear all,

請教各位先進

小弟目前遇到一個問題,我想將一個檔案A(X Y Z)的資料中刪除另一個檔案B(X Y Z)的資料,我只想到先讀B檔案的第一筆資料後去搜尋A檔案,匹配後就刪除後得到檔案C,但是這樣似乎沒有效率

=========source code===============
filenameSource='A.dat' # 來源檔案
filenamedelete='B.dat' # 預刪除點位
cp -r $filenameSource C.dat
while read line
do
sed -i "/${line}/"d C.dat
done < $filenamedelete
===================================

File A
1 2 3
4 5 6
5 4 7
...

File B
4 5 6

File C
1 2 3
5 4 7

是否有先進有更好的想法,THX.

2015/1/13 9:27
應用擴展 工具箱
回覆: shell script 大量刪除匹配資料
會員五級
註冊日期:
2008/10/7 21:19
所屬群組:
已註冊使用者
等級: 36
HP : 0 / 896
MP : 661 / 29079
EXP: 85
離線
檔案內容已經排序好了、同一行紀錄有可能出現兩次嗎?

2015/1/13 10:46
I′m UGP
應用擴展 工具箱
回覆: shell script 大量刪除匹配資料
會員一級
註冊日期:
2015/1/13 9:16
所屬群組:
已註冊使用者
等級: 1
HP : 0 / 18
MP : 2 / 260
EXP: 73
離線
檔案內容已經排序
同一行紀錄有可能重複出現

2015/1/13 10:51
應用擴展 工具箱
回覆: shell script 大量刪除匹配資料
會員四級
註冊日期:
2010/8/12 15:54
所屬群組:
已註冊使用者
等級: 18
HP : 0 / 443
MP : 135 / 11987
EXP: 72
離線
要刪除的 File B 的內容有多行?

2015/1/13 11:21
應用擴展 工具箱
回覆: shell script 大量刪除匹配資料
會員一級
註冊日期:
2015/1/13 9:16
所屬群組:
已註冊使用者
等級: 1
HP : 0 / 18
MP : 2 / 260
EXP: 73
離線
File B 的筆數視該次狀況而變,不會固定

2015/1/13 11:25
應用擴展 工具箱
回覆: shell script 大量刪除匹配資料
會員四級
註冊日期:
2010/8/12 15:54
所屬群組:
已註冊使用者
等級: 18
HP : 0 / 443
MP : 135 / 11987
EXP: 72
離線
File A 跟 File B 如果可以sort排序一下的話

comm FileA FileB
就有簡單的結果了

2015/1/13 11:44
應用擴展 工具箱
回覆: shell script 大量刪除匹配資料
會員一級
註冊日期:
2015/1/13 9:16
所屬群組:
已註冊使用者
等級: 1
HP : 0 / 18
MP : 2 / 260
EXP: 73
離線
一語點醒夢中人,感恩

comm -23 A B > C

2015/1/13 12:31
應用擴展 工具箱


 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.