作者tony9211 (公车奇想男)
看板Perl
标题[问题] 取代+新增某行+读取值放在取代後面
时间Thu Sep 29 00:02:32 2016
嗨嗨 各位前辈
这是我之前的关於取代的 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
感谢大神了
希望可以加个注解了
愿意以新竹的 星巴克/麦当劳/摩斯 答谢 :)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.132.55.51
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Perl/M.1475078556.A.4A2.html
1F:→ Neisseria: 这需求蛮特别的,其实不是很清楚这样子要做什麽 10/01 15:00
2F:→ Neisseria: 或许到 code job 发个案,找人帮忙做做看 10/01 15:01
3F:→ Neisseria: 而且似乎不限於 Perl,或许有其他的工具也说不定 10/01 15:01
4F:推 mmonkeyboyy: 这不特别 先把他存起来 不要一行一行处理 10/01 20:45
5F:→ mmonkeyboyy: 最後再一次把资料处理好送出去就好了 10/01 20:45
6F:→ tony9211: 还是想要用Perl 这样可以顺便学习XD 10/02 00:36
7F:→ tony9211: 看来好像难度有点高QQ 我在想办法惹 10/02 00:37
8F:推 icbruce: 推 mmonkey 存到变数去parse 出来处理 10/04 20:32
9F:→ MistQ: 你的读档会把整个档案内容当字串,如果不打算一行行处理 10/05 01:17
10F:→ MistQ: 删除bbb行 或许可用取代 $data=~s/bbb\r?\n//g 方式... 10/05 01:19
11F:→ tony9211: 感谢大家 ! 10/16 01:36