[問題] 取代的技巧(08/10 23:15)

看板Linux作者 (潑潑)時間14年前 (2010/08/10 00:23), 編輯推噓2(206)
留言8則, 4人參與, 最新討論串1/2 (看更多)
個人習慣用內建軟體,所以10.04以來都用empathy 但可能因為是軟體?可能因為是網路?可能是因為特殊原因? 有時後會漏訊 發現用pidgin漏訊時會有提醒,這樣可以知道我哪裡漏訊了 所以打算改用pidgin 我想把過去的empathy歷史訊息轉移到pidgin 所以需要一些取代技巧 爬文爬到這篇 #1AtldtLL (Linux) [ptt.cc] [分享] 搜尋並取代 某些文件裡面 嘗試之後是非常之妙用 但我有一些問題點 pidgin歷史訊息格式: <font color="#A82F2F"><font size="2">(18時35分41秒)</font> <b>帳號</b></font>訊息<br/> empathy歷史訊息格式: <message time='20100710T07:44:16' cm_id='0' id='帳號' name='名稱' token='' isuser='true' type='normal'>訊息</message> 在pidgin部份,color會因user跟client不同而有不同的兩種顏色 但empathy在時間以前的格式固定是<message time=' 所以我沒辦法單靠前段用基本的取代法來轉換成pidgin的格式 必須配合中段的id來辨別color裡面要放哪種顏色 請問這該怎麼做呢? -- http://qiqi2k7.blogspot.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.204.17 ※ 編輯: Qiqi 來自: 123.193.204.17 (08/10 00:30)

08/10 00:35, , 1F
把ID存成變數
08/10 00:35, 1F

08/10 00:40, , 2F
所以在終端機有指令可以取文中id的內容是嗎?
08/10 00:40, 2F

08/10 00:41, , 3F
老實說8.04用到現在,都沒去學過太多終端機的指令
08/10 00:41, 3F

08/10 00:41, , 4F
希望能藉由這次例子學會一些會用到的指令
08/10 00:41, 4F

08/10 00:42, , 5F
可以的話也整理出一個.sh當成歷史訊息empathy轉pidgin懶人包
08/10 00:42, 5F

08/10 12:35, , 6F
感謝Rickz版友的站內信,不過還沒時間看,晚上回來會研究一下
08/10 12:35, 6F

08/10 13:09, , 7F
sh 我不深入,不過我覺得用 pl、py 或 rb 會比較輕鬆。
08/10 13:09, 7F
感謝Rickz版友提供以下程式碼 #!/bin/bash MYID="Rickz" IFS=' ' for i in `cat $1`;do echo "$i" |grep -q "$MYID" && COLOR="#16569E" || COLOR="#A82F2F" echo "$i"|awk -F\' '{print "<font color=\"'"$COLOR"'\"><font size=\"2\">('"$(date -d $(echo "$i"|awk -F\' '{print $2}') +%H時%M分%S秒 )"')</font><b>"$8"</b></font>'"$(echo "$i"|sed "s/.*normal'>\(.*\)<\/message>/\1/g")"'<br/>"}' done 可惜我不懂怎麼去用它 不過至少有這個範例讓我知道要從何去學習 所以我上網查了 cat、grep、awk、sed 這幾個指令 不過也只學了最基本的用法,還沒辦法靈活運用 以下是我目前學到的結果 cat 20100710.log | grep 'qiqi' | sed 's/message/AAA/g' 我成功的把該檔案"只有我帳號"的那些資料行取代並"顯示" 但僅僅只有顯示並沒有寫入,查到關鍵字是sed要加w,但我不知道該怎麼加 而且版友提供的範例並沒有用到sed的w部份,所以事實上不用? ※ 編輯: Qiqi 來自: 123.193.204.17 (08/10 23:15)

08/12 08:01, , 8F
nice job!
08/12 08:01, 8F
※ 編輯: Qiqi 來自: 123.193.204.17 (08/12 20:06)
文章代碼(AID): #1CO2jkqO (Linux)
文章代碼(AID): #1CO2jkqO (Linux)