作者:
tony9211 (公車奇想男)
2016-09-29 00:02:32嗨嗨 各位前輩
這是我之前的關於取代的 code
上面的語法也是 在網路上拼拼而成
我自己也不是很熟悉
唸書唸到一半
又碰到新的問題
這是我之前拿來做取代的程式碼
他會讀取
在某個資料夾底下
.asc副檔名結尾的資料
並且 做取代的動作
然後再將檔案寫回去
https://gist.github.com/anonymous/40f78570806da2e8fd36d61090b4c1e7
想請問一下
如果我現在要做的事情有
跟上次很像
但不是只有單純的取代
總共有四個步驟 我個人都覺得有點麻煩...
如果寫的人在新竹 可以提供麥當勞 或是星巴克兩杯 :)
(一行程式碼 我覺得太難閱讀惹XD
希望可以長一點
加個註解跟介紹 ^^)
1.
取代某行
$data =~ s/Have a wonderful day!/Good luck to you/gi;
(這個我還可以)
2.
刪除某行 (這個我就不會了 希望是可以刪除某行
Ex: aaa
bbb
ccc
希望刪除bbb後變成 (希望那行完全刪除 不要換行)
aaa
ccc
3.
刪除某行 並且在後面新增兩行
Ex:
aaa ccc
bbb ddd
想要刪除 bbb ddd這行
並且新增 bbb xxx 以及 bbb eee (包含換行符號)
所以會變成
aaa ccc
bbb xxx
bbb yyy
4.
讀取某行後面的數字
新增兩行新的兩行 取代這一行
但新的兩行
但會用到這行原本的數字 第一行不變 第二行做運算
Ex:
aaa 101 12 34 -45 Left 1
bbb 102 56 76 -98 Left 1
想要讀取在aaa 101 後面的那行數字
然後然後新增兩行 並且在第二行做運算
會變成
ccc 105 12 35 -45 Left 1
ccc 106 12 35 -46 Left 1
bbb 102 56 76 -98 Left 1
這邊是先把aaa 101 取代成為 ccc 105
其中的35= 原本aaa後面的 34+1 | -46= -45-1
感謝大神了
希望可以加個註解了
願意以新竹的 星巴克/麥當勞/摩斯 答謝 :)
作者:
Neisseria (Neisseria)
2016-10-01 15:00:00這需求蠻特別的,其實不是很清楚這樣子要做什麼或許到 code job 發個案,找人幫忙做做看而且似乎不限於 Perl,或許有其他的工具也說不定
這不特別 先把他存起來 不要一行一行處理最後再一次把資料處理好送出去就好了
作者:
tony9211 (公車奇想男)
2016-10-02 00:36:00還是想要用Perl 這樣可以順便學習XD看來好像難度有點高QQ 我在想辦法惹
作者:
icbruce (justlikethis)
2016-10-04 20:32:00推 mmonkey 存到變數去parse 出來處理
作者: MistQ 2016-10-05 01:17:00
你的讀檔會把整個檔案內容當字串,如果不打算一行行處理刪除bbb行 或許可用取代 $data=~s/bbb\r?\n//g 方式...
作者:
tony9211 (公車奇想男)
2016-10-16 01:36:00感謝大家 !