sách gpt4 ăn đã đi

[Perl] Công cụ thay thế hàng loạt văn bản/mã

In lại Tác giả: qq735679552 Thời gian cập nhật: 29-09-2022 22:32:09 28 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài viết trên blog CFSDN [Perl] công cụ thay thế hàng loạt văn bản/mã này được tác giả sưu tầm và biên soạn. Nếu các bạn quan tâm đến bài viết này thì nhớ like nhé.

Tập lệnh Perl batchReplace.pl có thể được sử dụng để thay thế hàng loạt văn bản/mã trong tệp. Tìm các tệp thuộc loại được chỉ định trong một thư mục được chỉ định và kiểm tra đệ quy các thư mục con; sao chép cấu trúc thư mục của tệp đầu vào khi xuất tệp. [Đính kèm] Ứng dụng Win32 batchReplace.exe là một chương trình thực thi được biên dịch từ tập lệnh Perl và có thể được thực thi mà không cần cài đặt môi trường điều hành Perl. Sử dụng batchReplace.exe trong dòng lệnh [-i đường dẫn tệp đầu vào (hoặc thư mục chứa tệp)] [-o vị trí tệp đầu ra (tệp hoặc thư mục)]] [-c phần mở rộng tệp đầu vào hàng loạt, bắt đầu bằng ".", Nhiều phần mở rộng được phân tách bằng "|"][-m chế độ so khớp][-I (bỏ qua trường hợp nội dung trùng khớp)][-G (tìm kiếm toàn cục cho nội dung trùng khớp)][-e Các chuỗi ngoại lệ là phần bổ sung cho mẫu khớp. Nếu tìm thấy chuỗi như vậy trong kết quả khớp, quá trình xử lý không khớp sẽ được thực hiện][-r nội dung thay thế] Không có giới hạn thứ tự cho các tham số trên. Khi đường dẫn tệp liên quan đến tham số -o không tồn tại, nó sẽ được tạo tự động. Khi tệp đầu ra đã tồn tại, nội dung gốc của tệp sẽ bị ghi đè. (Vì lý do an toàn, vui lòng không xuất ra vị trí ban đầu của tệp đầu vào để tránh những mất mát không thể khôi phục được.) Ví dụ: batchReplace.exe -i d:\gaoshu1 -o d:\do\123\456 -e http://www .blueidea .com/ Đặt tham số thông qua tệp cấu hình batchReplace.set. Tệp cấu hình có thể chứa các mục cài đặt sau (ví dụ về định dạng, chú ý viết hoa): input=E:\fna\ chỉ định đường dẫn đầu vào, tương đương với lệnh tham số dòng -i giá trị mặc định. -i=E:\fna\ Tương tự như trên. Output=E:\dnaWalks\ chỉ định đường dẫn đầu ra, tương đương với giá trị mặc định của tham số dòng lệnh -o. -o=E:\dnaWalks\ Tương tự như trên. Match=]*>[\s\S]*?<\/iframe> chế độ khớp, tương đương với giá trị mặc định của tham số dòng lệnh -m. -m=]*>[\s\S]*?<\/iframe> Tương tự như trên. Không nhạy cảm bỏ qua trường hợp chữ cái của nội dung trùng khớp, tương đương với tham số dòng lệnh -I. -Tôi cũng như trên. Tìm kiếm toàn cầu để tìm nội dung phù hợp trên toàn cầu, tương đương với tham số dòng lệnh -G. -G Tương tự như trên. Nội dung được thay thế bằng replacement=

bound0

tương đương với giá trị mặc định của tham số dòng lệnh -r. -r=

bound0

Tương tự như trên. Ngoại trừ=http://www.blueidea.com/ Chuỗi ngoại lệ, nếu tìm thấy chuỗi như vậy trong kết quả khớp, quá trình xử lý không khớp sẽ được thực hiện, tương đương với giá trị mặc định của tham số dòng lệnh -e. -e=http://www.blueidea.com/ Tương tự như trên. CheckType=.htm|.html Khi tham số đầu vào được đặt thành một thư mục, hãy xử lý các tệp văn bản có các phần mở rộng này có trong thư mục (kiểm tra đệ quy các thư mục con). Tương đương với giá trị mặc định của tham số dòng lệnh -c. -c Tương tự như trên. Đặt một mục trên mỗi dòng. Không được có thêm dấu cách hoặc dấu ngoặc kép ngoại trừ giữa các nội dung. Ngoại trừ đầu vào và đầu ra cần thiết, tất cả các mục cài đặt đều là tùy chọn. Các tham số dòng lệnh ghi đè các giá trị mặc định tương ứng. Nếu bạn không bao gồm Match hoặc CheckType trong tệp cấu hình, giá trị mặc định tích hợp sẽ được bật (cùng giá trị được đưa ra trong ví dụ trên). Thay thế mặc định thành ký tự null, thay thế nội dung phù hợp bằng ký tự null, nghĩa là xóa nội dung phù hợp. Khi bạn muốn giữ lại cấu hình lịch sử trong batchReplace.set, bạn có thể đặt bất kỳ ký tự không trống nào trước tham số để hủy hiệu ứng của nó. Ví dụ: 2007/04/06 Không nhạy cảm (Không nhạy cảm ở đây sẽ được giữ lại dưới dạng cấu hình lịch sử và sẽ không còn hiệu lực.) 2007/04/06 Thay thế=

bound0

(Replacement=

bound0< /h1> sẽ được giữ lại dưới dạng cấu hình lịch sử và sẽ không còn hiệu lực.) Nếu cùng một mục xuất hiện trong nhiều dòng của tệp cấu hình thì cài đặt xuất hiện cuối cùng sẽ được ưu tiên, ví dụ: CheckType=.htm|.html. CheckType=.jsp -c=.asp|.php sẽ đặt giá trị CheckType thành .asp|.php. Bạn cũng có thể sử dụng tính năng này để giữ lại các cấu hình lịch sử để dễ dàng gỡ lỗi. Kịch bản này được viết rất vội vàng (tôi đã tranh thủ thời gian để ăn tối), và tôi sẽ cải thiện nó khi có thời gian trong tương lai. (Vì vậy, vui lòng ghi rõ nguồn khi in lại và chú ý cập nhật.) [Tuyên bố miễn trừ trách nhiệm] Tác giả không chịu trách nhiệm về bất kỳ tổn thất ngẫu nhiên nào do sử dụng công cụ này gây ra. mã nguồn perl.

Sao chép mã mã như sau

#file:batchReplace.pl #author:Bound0 #created:2007-04-06 #first published: http://bbs.blueidea.com/viewthread.php?tid=2734388 my $match; my $replacement=''; my $insensitive=0; my $global=0; my $gi; my $go; my $Checktype=".htm|.html"; my $except; nếu(mở(setfile,") { nếu(/^\s*-I/){$insensitive=1} nếu(/^\s*-G/){$global=1} nếu(/^\s*-m=(.+)/){$match=$1} nếu(/^\s*-r=(.+)/){$replacement=$1} nếu(/^\s*-e=(.+)/){$except=$1} nếu(/^\s*-i=(.+)/){$gi=$1} nếu(/^\s*-o=(.+)/){$go=$1} nếu(/^\s*-c=(.+)/){$Checktype=$1} nếu(/^\s*Insensitive/){$insensitive=1} nếu(/^\s*Global/){$global=1} nếu(/^\s*Match=(.+)/){$match=$1} nếu(/^\s*Thay thế=(.+)/){$replacement=$1} nếu(/^\s*Ngoại trừ=(.+)/){$gi=$1} nếu(/^\s*Đầu vào=(.+)/){$gi=$1} nếu(/^\s*Đầu ra=(.+)/){$go=$1} nếu(/^\s*CheckType=(.+)/){$Checktype=$1} } } $para của tôi=' '.join(' ',@ARGV); nếu($para=~/ -I */){$insensitive=1} nếu($para=~/ -G */){$global=1} @ti=split(/ -i */,$para); if($ti[1]){($gi)=split(/ -(o|i|c|e|m|r|I|G)/,$ti[1])} except($gi){print "Không có tham số \"Đường dẫn đầu vào\"!";exit} my @to=split(/ -o */,$para); if($to[1]){($go)=split(/ -(o|i|c|e|m|r|I|G)/,$to[1])} except($go){print "Không có tham số \"Đường dẫn đầu ra\"!";exit} my @tc=split(/ -c */,$para); if($tc[1]){($Checktype)=split(/ -(o|i|c|e|m|r|I|G)/,$tc[1])} my @te=split(/ -e */,$para); nếu($te[1]){($except)=split(/ -(o|i|c|e|m|r|I|G)/,$te[1])} @tr của tôi=split(/ -r */,$para); nếu($tr[1]){($replacement)=split(/ -(o|i|c|e|m|r|I|G)/,$tr[1])} trừ khi($match){$match="]*>[\\s\\S]*?<\\/iframe>"; $insensitive=1; $global=1} @tm của tôi=split(/ -m */,$para); if($tm[1]){($match)=split(/ -(o|i|c|e|m|r|I|G)/,$tm[1])} except($match){print "Không có tham số \"Mẫu khớp\"!";exit} my $checktyp='('; $Checktype=~s/\./\\\./g; $Checktype=~s/\|/\)\|\(/g; $checktyp.=$Checktype.')$'; my $excep; if($except){ $excep=$except; $excep=~s/\//\\\//g; $excep=~s/\./\\\./g; $excep=~s/\|/\\\|/g; $excep=~s/\[/\\\[/g; $excep=~s/\]/\\\]/g; $excep=~s/\(/\\\(/g; $excep=~s/\)/\\\)/g; $excep=~s/\$/\\\$/g; $excep=~s/\?/\\\?/g; } $replacemen của tôi; nếu($replacement){ $replacemen=$replacement; $replacemen=~s/\//\\\//g; $replacemen=~s/\./\\\./g; $replacemen=~s/\|/\\\|/g; $replacemen=~s/\[/\\\[/g; $replacemen=~s/\]/\\\]/g; $replacemen=~s/\(/\\\(/g; $replacemen=~s/\)/\\\)/g; $replacemen=~s/\$/\\\$/g; $replacemen=~s/\?/\\\?/g; } tệp con cFile { my $fi; ($fi)=@_; if(opendir(DIR, $fi)) { my @dir=readdir(DIR); closedir DIR; if("\\" eq substr $fi,(length $fi)-1){$fi=substr($fi,0,(length $fi)-1)} my @subdirs= grep { /^(?!\.)/ && -d "$fi\\$_" } @dir; foreach my $subdir (@subdirs) { cFile("$fi\\$subdir") } @files = grep { /$checktyp/i && -T "$fi\\$_" } @dir; foreach my $fil (@files) { my $bp=''; $bp=(substr $fi,(length $gi))."\\"; my $bi="$fi\\$fil"; my $bo=$go.$bp.$fil; remove($bi,$bo) } } } trừ khi("\\" eq substr $go,(length $go)-1){$go.="\\"} nếu(-d $gi) { trừ khi("\\" eq substr $gi,(length $gi)-1){$gi.="\\"} cFile($gi); } else { my $bu=substr $gi,(rindex $gi,'\\'); my $bo=$go.$bu; remove($gi,$bo) } print "\nĐã hoàn tất quá trình!"; print "\ni:$gi"; print "\no:$go"; print "\nm:$match"; if($except){print "\ne:$except"} if($replacement){print "\nr:$replacement"} sub remove { my $bi; my $bo; ($bi,$bo)=@_; print "\nđang xử lý $bi ...\n"; except(open(INPUT,"<$bi")){print "\n[Cảnh báo] Không thể mở tệp <$bi>: $!";return} my @conts = ; close INPUT; my $cont=join '',@conts; my $c; nếu($không nhạy cảm) { nếu($toàn cục) { trừ khi($cont=~s/($match)/${$c=Cexcept($1)}$c/gi){chết "$!"} } nếu không { trừ khi($cont=~s/($match)/${$c=Cexcept($1)}$c/i){chết "$!"} } } nếu không { nếu($toàn cục) { trừ khi($cont=~s/($match)/${$c=Cexcept($1)}$c/g){chết "$!"} } nếu không { trừ khi($cont=~s/($match)/${$c=Cexcept($1)}$c/){chết "$!"} } } trừ khi(mở(OUT, ">$bo")) { nếu($!==2) { $dbo=substr $bo,0,(rindex $bo,'\\'); if(opendir(OUTDIR,$dbo)){closedir OUTDIR;print "\n[Cảnh báo] Không thể mở tệp đầu ra <$bo>: $!";exit} else { if($!==2) { except(pmkpath($dbo)){print "\n[Cảnh báo] Không thể tạo thư mục đầu ra <$dbo>: $!";exit} except(open(OUT,">>$bo")){print "\n[Cảnh báo] Không thể mở tệp đầu ra <$bo>: $!";exit} } else{print "\n[Cảnh báo] Không thể mở thư mục đầu ra <$dbo>: $!";exit} } } else{print "\n[Cảnh báo] Không thể mở tệp đầu ra <$bo>: $!";exit} } print OUT "$cont"; close OUT; } sub pmkpath { my @p=split(/\\/,shift); my $pa=$p[0]; $m của tôi = $#p+1; $t của tôi; đối với ($t = 1; -e $pa;$t++) {$pa. = '\\'.$p[$t]} trừ khi (mkdir $pa) {trả về 0} đối với (; $t < $m;$t++) { $pa. = '\\'.$p[$t]; trừ khi(mkdir $pa){trả về 0} } trả về 1 } sub Cexcept { trừ khi($except){trả về $replacemen} của tôi $con; ($con)=@_; nếu($con=~/$excep/){trả về $con}else{trả về $replacemen} } 。

Tải về tập tin exe đóng gói.

Cuối cùng, bài viết này về công cụ thay thế hàng loạt văn bản/mã [Perl] kết thúc ở đây. Nếu bạn muốn biết thêm về công cụ thay thế hàng loạt văn bản/mã [Perl], vui lòng tìm kiếm các bài viết CFSDN hoặc tiếp tục duyệt các bài viết liên quan. tất cả sẽ ủng hộ blog của tôi trong tương lai! .

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress