如何自動修改 txt 文字檔內容 [論壇 - Ubuntu 與工具程式及軟體推薦]
正在瀏覽:
1 名遊客
如何自動修改 txt 文字檔內容 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2014/4/9 15:04 所屬群組:
已註冊使用者 等級: 1
HP : 0 / 2
![]() |
您好,
請教一個問題,於 Ubuntu 系統內,有一個副檔名為 txt 的文字檔,該文字檔內容大概如下:(範例) 00001 00 Trojan-Downloader.Win32.Geral.cnh 00002 00 Trojan-Dropper.VBS.Agent.bp 00003 00 Trojan-Clicker.JS.FbLiker 00004 00 Net-Worm.Win32.Kido.ir 00005 00 Email-Worm.Win32.Brontok.q 00006 00 Worm.Win32.Flame.a 00007 00 Backdoor.Win32.MiniFlame.a 00008 00 Worm.VBS.Dinihou.r 00009 00 Net-Worm.Win32.Kido.ih 有兩個問題想請教, 1.如何透過 Script 或 tools,將該文字檔內容,特定的行數與字串刪除? 譬如自動將 00002 整行刪除. 2.如何可以自動將該文字檔,特定字串(譬如:有含Flame的字串)的行數整個 搬移到文字檔最前面. 譬如:(搬移後的文字檔內容) 00006 00 Worm.Win32.Flame.a 00007 00 Backdoor.Win32.MiniFlame.a 00001 00 Trojan-Downloader.Win32.Geral.cnh 00002 00 Trojan-Dropper.VBS.Agent.bp 00003 00 Trojan-Clicker.JS.FbLiker 00004 00 Net-Worm.Win32.Kido.ir 00005 00 Email-Worm.Win32.Brontok.q 00008 00 Worm.VBS.Dinihou.r 00009 00 Net-Worm.Win32.Kido.ih 3.執行 1 與 2 修改之後,該文字檔能夠自動儲存
2014/4/9 15:27
|
||||||||||
![]() |
回覆: 如何自動修改 txt 文字檔內容 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
管理員
![]() ![]() 註冊日期:
2012/1/14 18:41 所屬群組:
討論區管理群 等級: 20
HP : 0 / 480
![]() |
sed --in "1! {p;d};:1;$(($location-1))! {N;b1};h;n;p;g;p" test
這段是以前我用來做根你一樣事情的東西。test是檔案 location 就是你要移動到最上面的那行位置。 sed -n '4 {d;n};p' test 這個式刪除 修改最前面的數字,就可以移除相對應的行數,不過這個是檔案的行數,不是你自己寫的行號。
2014/4/9 22:19
|
||||||||||
![]() |
回覆: 如何自動修改 txt 文字檔內容 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2014/4/9 15:04 所屬群組:
已註冊使用者 等級: 1
HP : 0 / 2
![]() |
感謝您的指導,
請問一下,如果我想要刪除的是指定的 ID Number 行號,不是檔案內容的行數, 因為此 txt 檔內容每天會更新,指定檔案行數刪除會有誤判情況,但都有固定的 ID Number,是否可以達成呢? 此外也必須移動特定的 ID Number 行號至檔案最前面. Thanks
2014/4/10 14:57
|
||||||||||
![]() |
回覆: 如何自動修改 txt 文字檔內容 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2014/4/9 15:04 所屬群組:
已註冊使用者 等級: 1
HP : 0 / 2
![]() |
Dear all,
請問有人知道這個問題要如何解嗎? 或是提供一個方向或是工具都可以. 非常謝謝.
2014/4/15 19:07
|
||||||||||
![]() |
回覆: 如何自動修改 txt 文字檔內容 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員二級
![]() ![]() 註冊日期:
2011/10/7 0:22 所屬群組:
已註冊使用者 等級: 7
HP : 0 / 157
![]() |
或許可以用awk,底下是我測試的指令,可以全部寫成一行:
awk ' BEGIN{a=0;b=0} {if($0~/^00006/){head[a]=$0;a=a+1}else{orgin[b]=$0;b=b+1}} END{for(i=0 ; i< a; ++i){print head[i]};for(i=0;i<b;++i){print orgin[i]}} ' test02.txt > test03.txt 其中,$0是代表檔案的每一行全部的內容,/^00006/是正規表示法,『^』代表位置開頭,『~』代表尋找符合項目。 如果要多個條件,awk應該可以用: if($0~/^00006/ || $0~/^00007/){動作}
2014/4/15 20:06
|
||||||||||
![]() |
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.