คำถามติดแท็ก perl

Perl เป็นภาษาการเขียนโปรแกรมที่ทรงพลังและสูง คำถามเกี่ยวกับ Perl ควร จำกัด เฉพาะสภาพแวดล้อมการพัฒนา Perl การใช้ Perl หรือการใช้ Perl เพื่อทำงานอัตโนมัติในคอมพิวเตอร์ของคุณ

11
ควรใช้ Bash เมื่อใดและเมื่อใดควรใช้ Perl / Python / Ruby [ปิด]
เรากำลังเขียนสคริปต์ทั้งหมดของเรากับ Bash จนถึงตอนนี้ แต่ฉันเริ่มรู้สึกโง่เล็กน้อยเกี่ยวกับเรื่องนี้ แน่นอนว่าเราสามารถทำทุกอย่างที่เราต้องการด้วย Bash (มันค่อนข้างทรงพลัง) ฉันเริ่มสงสัยว่าเราไม่ควรใช้ภาษาสคริปต์ที่เหมาะสม (ในกรณีของเราคือ Ruby ที่สุด) คุณตัดสินใจอย่างไรเมื่อใช้ Perl / Python / Ruby ผ่าน Bash สำหรับสคริปต์ ฉันไม่คิดว่าสคริปต์เริ่มต้นที่ใช้ Ruby มีเหตุผล แต่ใช้เวลานานกว่าสคริปต์เล็กน้อยที่เพิ่มบัญชีอีเมล
78 linux  bash  script  perl  ruby 

10
การลบรหัสสี ANSI ออกจากสตรีมข้อความ
ตรวจสอบผลลัพธ์จาก perl -e 'use Term::ANSIColor; print color "white"; print "ABC\n"; print color "reset";' ในเท็กซ์เอดิเตอร์ (เช่นvi) แสดงสิ่งต่อไปนี้: ^[[37mABC ^[[0m เราจะลบรหัสสี ANSI ออกจากไฟล์เอาต์พุตได้อย่างไร ฉันคิดว่าวิธีที่ดีที่สุดคือการส่งออกท่อผ่านตัวแก้ไขสตรีม ต่อไปนี้ใช้ไม่ได้ perl -e 'use Term::ANSIColor; print color "white"; print "ABC\n"; print color "reset";' | perl -pe 's/\^\[\[37m//g' | perl -pe 's/\^\[\[0m//g'
73 regex  sed  perl  awk 

12
ฉันจะลบไฟล์ใน Linux ที่ชื่อดูเหมือนว่าเป็นเครื่องหมายยัติภังค์เท่านั้นเช่นเดียวกับ“ -”
ฉันได้พยายาม rm -- - rm "-" rm "\-" rm \- ยิง Perl ให้ ~$ perl -e '$junk = glob("-"); chomp $junk; print "$junk\n"; `rm $junk`;' - rm: cannot remove `-': No such file or directory ...และ... ~$ perl -e '$junk = glob("-"); chomp $junk; print "$junk\n"; `mv $junk newfile.garbage`;' - …
33 linux  perl  bash 

5
ฉันสามารถใช้นิพจน์ปกติของ Perl ในบรรทัดคำสั่ง vim ได้หรือไม่
ฉันต้องการใช้การแสดงออกปกติ Perl บนบรรทัดคำสั่ง vim ตัวอย่างเช่นหากต้องการใช้ประโยชน์จากคำในบรรทัดปัจจุบันคุณสามารถพิมพ์: :s/(\w+)/\u$1/g
27 vim  regex  perl 

3
คำสั่ง vs โปรแกรม?
ฉันค้นหาความแตกต่างระหว่างadduserและuseraddและคำอธิบายก็useraddคือคำสั่งในขณะที่adduserเป็นสคริปต์ Perl ฉันเข้าใจว่าสคริปต์ perl คืออะไร แต่สิ่งที่ฉันไม่เข้าใจคือcommandตอนนั้นคืออะไร ฉันมักจะคิดว่าคำสั่งที่ชอบls, ln, cdฯลฯ เป็นโปรแกรมที่ง่ายทุกที่เขียนในภาษาสิ่งที่เพียงแค่ทำสิ่งหนึ่ง อะไรคือความแตกต่างระหว่าง "โปรแกรมอย่างง่าย" เหล่านี้และสคริปต์ Perl แน่นอนฉันรู้ว่าสคริปต์ (perl) ไม่ได้รวบรวม แต่ตีความที่รันไทม์ แต่ฉันเดาว่าไม่ใช่ความแตกต่างเท่านั้น?

5
จะตัดไฟล์ให้มีขนาดที่กำหนดภายใต้ Linux ได้อย่างไร
ฉันต้องการลดขนาดไฟล์โดยใช้กำลังดุร้ายนั่นคือฉันไม่สนใจที่เหลือฉันแค่ต้องการตัดไฟล์พูดครึ่งแล้วทิ้งส่วนที่เหลือ สิ่งแรกที่มาคิดเป็นของ Perl ตัด ฉันกำลังติดตามตัวอย่างในหน้านั้นและทำสิ่งเดียวกัน: seq 9 > test.txt ls -l test.txt perl -we 'open( FILE, "< ./test.txt" ) && truncate( FILE, 8 ) && close(FILE);' แต่ไฟล์ยังคงมีขนาดเท่ากัน: $ ls -lgG test.txt -rw-rw---- 1 18 2013-08-08 09:49 test.txt ฉันจะทำงานนี้ได้อย่างไร
19 linux  ubuntu  shell  perl 

7
unix - แยกไฟล์. gz ขนาดใหญ่ทีละบรรทัด
ฉันแน่ใจว่าบางคนมีความต้องการด้านล่างสิ่งที่เป็นวิธีที่รวดเร็วในการแยกไฟล์. gz ขนาดใหญ่ทีละบรรทัด? ไฟล์ข้อความต้นแบบมี 120 ล้านแถว ฉันมีพื้นที่ว่างในดิสก์ไม่เพียงพอที่จะ gunzip ไฟล์ทั้งหมดในครั้งเดียวดังนั้นฉันจึงสงสัยว่ามีบางคนรู้ว่าสคริปต์หรือเครื่องมือทุบตี / perl ที่สามารถแยกไฟล์ได้ . เช่นเรียกมันว่า: bash splitter.sh hugefile.txt.gz 4000000 1 would get lines 1 to 40 mn bash splitter.sh hugefile.txt.gz 4000000 2 would get lines 40mn to 80 mn bash splitter.sh hugefile.txt.gz 4000000 3 would get lines 80mn to 120 mn …
16 linux  perl  bash  shell  unix 

8
ฉันจะจัดคิวไฟล์หลายไฟล์สำหรับการคัดลอกบน Mac ได้อย่างไร
เมื่อฉันคัดลอกหลายไฟล์ใน Mac ระบบจะพยายามคัดลอกไฟล์ทั้งหมดในเวลาเดียวกัน ปัญหาคือสองเท่า ก่อนอื่นเมื่อคุณเลือกหลายไฟล์และคัดลอกไฟล์พวกเขาทั้งหมดจะเข้าสู่กระบวนการเดียวโดยใช้วิธี "all or nothing" ซึ่งไม่เหมือนกับกรดในฐานข้อมูล บ่อยครั้งที่สิ่งนี้ไม่เป็นที่ต้องการ นอกจากนี้เมื่อคุณเพิ่มกระบวนการทำสำเนาอื่น ๆ ระบบจะพยายามทำสำเนาทุกอย่างในเวลาเดียวกัน ตัวอย่างเช่นฉันตัดสินใจคัดลอกไฟล์ขนาดใหญ่Aจากนั้นฉันตัดสินใจคัดลอกไฟล์ขนาดใหญ่Bเช่นกัน ซึ่งส่งผลให้มีการดำเนินการคัดลอกแบบขนานสองครั้งโดยไม่คำนึงว่าหนึ่งใน "ไฟล์ขนาดใหญ่" ยังเป็นตัวเลือกของไฟล์จำนวนมาก ฉันไม่ชอบสิ่งนี้ด้วยเหตุผลหลายประการ: เมื่อกระบวนการคัดลอกหลายรายการทำงานพร้อมกันดูเหมือนว่าจะเป็นการขัดข้องของกระบวนการอื่น ๆ นอกจากนี้เมื่อคัดลอกไฟล์หลายไฟล์พร้อมกันกระบวนการคัดลอกจะช้าลงกว่าเดิม และสุดท้ายหากกระบวนการถูกยกเลิกไม่มีไฟล์ใดมาถึงปลายทาง เมื่อทำการเพิ่มไฟล์ลงในคิวมันจะเริ่มทำการคัดลอกพร้อมกันและทำให้กระบวนการทำงานราบรื่นยิ่งขึ้น นี่เป็นปัญหาที่แท้จริงเมื่อคัดลอกไปยังเครื่องอื่นหรือไดรฟ์บนเน็ตเวิร์ก (local) ผลลัพธ์: ไฟล์Aที่ฉันต้องการถ่ายโอนและใช้งานก่อนใช้เวลานานกว่าที่ต้องการและเมื่อคัดลอกจาก HD กลางบน LAN ฉันไม่สามารถใช้ไฟล์แรกจนกว่าไฟล์อื่นทั้งหมดจะมาถึง ดังนั้น ... ฉันจะจัดคิวไฟล์หลายไฟล์สำหรับการคัดลอกบน Mac ได้อย่างไร ในการชี้แจง: โดยไม่คำนึงถึงไฟล์จำนวนมากที่ถูกเลือกหรือพวกเขาถูกเพิ่มทีละคนฉันต้องการให้พวกเขาทั้งหมดใส่ลงในคิวที่คัดลอกเพียงหนึ่งไฟล์ในแต่ละครั้งจนกว่าจะเสร็จสิ้นคิว คำตอบใน Bash และ Perl โดยเฉพาะก็ยินดีต้อนรับเช่นกัน!

2
ฉันจะระบุอักขระที่ไม่ใช่ ASCII จากเชลล์ได้อย่างไร
มีวิธีง่ายๆในการพิมพ์ทั้งหมดอักขระที่ไม่ใช่ ASCII และหมายเลขบรรทัดที่พวกเขาเกิดขึ้นในไฟล์โดยใช้อรรถประโยชน์บรรทัดคำสั่งเช่นgrep, awk, perletc? ฉันต้องการเปลี่ยนการเข้ารหัสของไฟล์ข้อความจาก UTF-8 เป็น ASCII แต่ก่อนที่จะทำเช่นนั้นต้องการแทนที่อักขระทั้งหมดที่ไม่ใช่ ASCII ด้วยตนเองเพื่อหลีกเลี่ยงการเปลี่ยนแปลงอักขระที่ไม่คาดคิดซึ่งเกิดขึ้นจากรูทีนการแปลงไฟล์
13 linux  grep  perl  awk  ascii 

2
รับ id กระบวนการสำหรับสคริปต์ perl ปัจจุบัน
ฉันจะรับรหัสกระบวนการสำหรับกระบวนการ perl ที่ใช้งานสคริปต์ปัจจุบันได้อย่างไร getppid () ไม่ส่งคืนค่า pid เดียวกับ ps -ea | grep มีวิธีที่ง่ายหรือฉันเพียงแค่เรียกใช้คำสั่ง ps -ea ภายในสคริปต์ของฉันและตัดส่วนอื่น ๆ ของข้อมูลหรือไม่
11 perl 

1
การนับจำนวนที่เกิดขึ้นในคอลัมน์แรกของไฟล์
เรามีไฟล์นี้: 1 2 1 3 1 2 3 3 52 1 52 300 และอีก 1,000 ฉันต้องการนับจำนวนครั้งที่แต่ละค่าเกิดขึ้นในคอลัมน์แรก 1 3 3 1 52 2 ซึ่งหมายความว่าเราเห็น 1 สามครั้ง. ฉันจะทำสิ่งนั้นใน Perl, AWK หรือ Bash ได้อย่างไร
8 linux  bash  perl  awk 

2
การอัปเกรด Macport ล้มเหลวด้วยข้อขัดแย้งของการโค่นล้ม perlbindings
ฉันกำลังพยายามทำport upgrade outdatedแต่มันหยุดที่ข้อขัดแย้งของแพคเกจที่ฉันไม่สามารถแก้ไขได้ ไม่มีใครรู้วิธีแก้ปัญหานี้หรือไม่ sudo port upgrade outdated ---> Computing dependencies for subversion-perlbindings-5.16 Error: Unable to exec port: Can't install subversion-perlbindings-5.16 because conflicting ports are installed: subversion-perlbindings-5.12
8 macos  svn  perl  macports 


3
จะรันไฟล์ PL ใน Linux ได้อย่างไร?
ฉันมีไฟล์ vmware-install.pl ที่ฉันต้องดำเนินการ ฉันคลิกสองครั้ง แต่ Linux จะเปิดในโปรแกรมแก้ไขข้อความเพื่อแก้ไข จะรันไฟล์นี้ได้อย่างไร? สามารถทำได้จาก GUI หรือไม่? ในคุณสมบัติของไฟล์บอกว่า "อนุญาตให้เรียกใช้ไฟล์เป็นโปรแกรม" ฉันมี Fedora 18 อัปเดต: ฉันจัดการเพื่อเปิดคอนโซลและไปยังโฟลเดอร์ของฉัน ฉันแหย่: chmod +x vmware-install.pl vmware-install.pl บรรทัดสุดท้ายพูดว่า: ไม่พบคำสั่ง vmware-install.pl ... แต่ 'ls' จะแสดงรายการไฟล์ที่นั่น ....
4 linux  fedora  perl 

1
เป็นไปได้ไหมที่จะเปิดพอร์ตเพื่อฟังโดยไม่ต้อง netcat
ฉันต้องการระบบ Linux เพื่อฟังพอร์ต TCP และถ่ายโอนข้อมูลที่ได้รับไปยังไฟล์และ / หรือ stdout ระบบไม่ได้ติดตั้ง netcat ฉันมีสิทธิ์ใช้งานรูท แต่ไม่อนุญาตให้เพิ่มแอพพลิเคชั่นใหม่เข้าสู่ระบบด้วยเหตุผลด้านความสอดคล้อง เป็นไปได้หรือไม่ที่จะทำเช่นนี้กับสคริปต์ทุบตี perl หรือ python อย่างง่าย ง่ายกว่าดีกว่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.