Re: [问题] 所有txt档做regular

楼主: Neisseria (Neisseria)   2014-12-30 13:06:00
想了想,觉得这个可能是你要的
$ perl -p -e 's/pattern/modification/g;' file1 file2 file3 ...
这是一种 one-line Perl 的写法,这行命令列会将 file1, file2, file3 ...
每一行都以命令列的 regex 修改后,将每一行印在终端机画面上
如果确定结果是你要的,修改一下就可以储存了
$ perl -p -i.bak -e 's/pattern/modification/g;' file1 file2 file3 ...
这样子,每一行都会以 regex 修改后立即储存起来
旧的档案会以 .bak 做为副档名储存起来
不过这真的会动到档案,所以请再三确认后再下这个指令
这个 -p 的叙述,约略等于以下同效的 while 循环
while (<>) {
s/pattern/modification/g;
}
continue {
print;
}
参考看看囉
※ 引述《pat12345 (咖啡杯)》之铭言:
: open FILE1, ">new.txt";#开启一个资料夹
: @file_list = glob "/home/users/cherry/work/perl/*.txt";
: #将/perl下的所有txt储存@file_list阵列
: while(<FILE>)
: {
: if(/\s+metal2/i)
: {
: ? print FILE1 "$_\n";
: }
: }
: close FILE
: 如上述的程式码,
: (1)@file_list是我在perl/下的所有txt file
: (2)我想将这些txt file通通做regular expression并储存
: 中间空格处的指令要怎么加怎么修改呢? 想了好多天,恳请高手帮帮忙

Links booklink

Contact Us: admin [ a t ] ucptt.com