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

Perl เป็นภาษาโปรแกรมระดับสูงที่ติดตั้งโดยค่าเริ่มต้นใน Ubuntu เป็นที่รู้จักกันดีว่าใช้สำหรับการจัดการข้อความสคริปต์ CGI และเป็นชุมชนขนาดใหญ่ คุณสามารถค้นหาโมดูลและบทช่วยสอนมากมายได้ที่ http://www.cpan.org/

1
สร้างการสนับสนุน Perl แบบเต็มใน Ubuntu SDK
ฉันกำลังใช้งาน Ubuntu v14.04 และหลังจากผ่านความพยายามฉันก็ติดตั้ง Ubuntu SDK ได้สำเร็จ ฉันต้องใช้ Perl + QML / Qt เพื่อพัฒนาแอพพลิเคชั่นที่ใช้งานได้อย่างเต็มที่ผ่าน Ubuntu SDK ซึ่งสามารถเรียกใช้ "บรรจบกัน" บนทั้ง Ubuntu บนเดสก์ท็อปและบนแพลตฟอร์มโทรศัพท์ Ubuntu การผูก Qt สำหรับ Perl นั้นล้าสมัย แต่ฉันยินดีที่จะนำ Qt กลับมาใช้ใหม่ได้เองเพื่อใช้เมื่อ Perl กำลังทำงานในโหมดตีความปกติ https://metacpan.org/pod/QtCore4 นอกจากนี้ฉันจะใช้คอมไพเลอร์ Perl ใหม่ (ฉันเป็นผู้เขียน) ดังนั้นเราจึงสามารถสร้างโค้ดเอาต์พุต C ++ ที่เรียกว่า Qt โดยตรงเพื่อใช้เมื่อ Perl ทำงานในโหมดคอมไพล์ Perl http://rperl.org เห็นได้ชัดว่าอินเตอร์เฟสกับ Qt นั้นแตกต่างกันถ้าเราใช้ …

5
ฉันจะรวมไฟล์เป็นรายบรรทัดได้อย่างไร
cat file1 foo ice two cat file2 bar cream hundred ผลลัพธ์ที่ต้องการ: foobar icecream twohundred file1 และ file2 จะมีจำนวนบรรทัดเท่ากันเสมอในสถานการณ์ของฉันในกรณีที่ทำให้สิ่งต่าง ๆ ง่ายขึ้น

1
วิธีตั้งค่าภาษา
หลังจากติดตั้งเซิร์ฟเวอร์ Ubuntu ให้สะอาดฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อเรียกใช้ 'perl' perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "en_CA.utf8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). ฉันควรตั้งค่าตำแหน่งที่ตั้งระบบของฉันและผู้ใช้เฉพาะเจาะจงที่ไหน หากมีโปรแกรมอรรถประโยชน์บรรทัดคำสั่งให้ทำฉันควรจะใช้มากกว่าแก้ไขไฟล์การตั้งค่าด้วยตนเอง
21 locale  perl 

1
การใช้ตัวดัดแปลงของ Perl-compatible Regex (PCRE) ใน grep
ตามgrep --helpและman grep, เราสามารถใช้-Pตัวเลือกเพื่อตีความรูปแบบเป็นนิพจน์ปกติของ Perl (PCRE, ให้แม่นยำ), แทนค่าเริ่มต้นของPOSIX นิพจน์พื้นฐานปกติ (BRE) ในภาษา Perl ตัวดัดแปลงต่างๆสามารถเพิ่มลงในนิพจน์เพื่อปรับการตีความรูปแบบ (ในไวยากรณ์ของ/pattern/modifiers) ดังนั้นใครบางคนสามารถเพิ่มการปรับเปลี่ยนการแสดงออกปกติ Perl ของ grep? ฉันลองชุดรูปแบบบางอย่างเช่นgrep -P "/^got.it$/ms" [FILE]แต่ผลการค้นหาผิด อย่างไรก็ตามเกี่ยวกับการตีความ PCRE นั้นคู่มือชี้ให้เห็นว่า: นี่คือการทดลองอย่างมากและgrep -Pอาจเตือนถึงคุณลักษณะที่ยังไม่ได้ใช้งาน เป็นไปได้ไหมที่เครื่องมือ grep ไม่รองรับตัวดัดแปลงเลย ? โดยวิธีการที่ฉันสังเกตเห็นว่าอย่างใดอย่างหนึ่งสามารถดำเนินการจับคู่รูปแบบที่ไม่สำคัญกรณีโดยใช้-iตัวเลือกซึ่งเป็นตัวอย่างของการปรับเปลี่ยน
20 grep  perl  regex 

5
ฉันจะอัพเดต / ติดตั้ง Perl ได้อย่างไร
แพ็คเกจ Perl อยู่ใน/usr/binและเป็นรุ่นเก่ากว่า (5.12.4) รุ่นเสถียรในปัจจุบันดูเหมือนจะเป็น 5.14.2 ฉันจะอัปเดตเวอร์ชันนี้ได้อย่างไร จำเป็นต้องมีการเข้าถึงรูทและฉันไม่ต้องการรวบรวมไบนารีใหม่เพื่อติดตั้งในไดเรกทอรีที่อยู่ในเส้นทางของฉัน
19 perl 

5
ไม่พบ ack ใน Ubuntu 17.10 repositories
ฉันพยายามติดตั้งackผ่านทางaptแต่ดูเหมือนว่าจะไม่มีให้ใน repos อีกต่อไป ทั้งสอง: sudo apt install ack sudo apt install ack-grep ให้ข้อผิดพลาดต่อไปนี้: E: Package 'ack-grep' has no installation candidate ไม่สามารถใช้งานได้ในที่เก็บ 17.10 อีกต่อไปแล้วใช่ไหม
14 17.10  perl 

1
ความแตกต่างระหว่างคำสั่ง "เปลี่ยนชื่อ" ที่แตกต่างกันคืออะไร?
ตั้งแต่ Ubuntu 14.04 มีrenameคำสั่งอย่างน้อยสามคำ: renameจัดทำโดยutil-linuxแพคเกจให้ดูการเปลี่ยนชื่อมนุษย์ renameให้บริการโดยperlแพคเกจดูผู้ชาย prename renameจัดทำโดยrenameแพคเกจดูเปลี่ยนชื่อไฟล์ผู้ชาย คำถาม: อะไรคือความแตกต่างระหว่างคำสั่งเหล่านั้น? ทำไมมีหลายแพ็คเกจที่ให้คำสั่งต่างกันโดยใช้ชื่อเดียวกัน - ฉันคิดว่านั่นไม่ใช่อุบัติเหตุหรือมันคืออะไร? มันจะไม่ตรงไปตรงมาหรือเปล่าที่perlแพ็คเกจจะรวมrenameคำสั่ง“ เต็ม” หรือไม่รวมrenameคำสั่งใด ๆเลย? เหตุใดการแยกนี้จึงดูเหมือนไม่เสร็จสิ้นอย่างต่อเนื่องจนถึงอย่างน้อย Ubuntu 17.04 คำถามนี้ถูกถามใน U&L แล้ว (ตามที่ฉันค้นพบในภายหลัง): มีอะไรกับการเปลี่ยนชื่อทั้งหมด: prename, เปลี่ยนชื่อ, เปลี่ยนชื่อไฟล์?

3
มีสคริปต์ Perl หรือ Python ที่ฉันสามารถเขียนได้ซึ่งสามารถลดขนาดหน้าจอเทอร์มินัล Gnome ให้เล็กลงได้หรือไม่?
ฉันใช้ Ubuntu 14.04 พร้อมการตั้งค่า GNOME แบบเก่าจาก GDM (ฉันไม่ชอบอินเตอร์เฟส Unity ใหม่) มีวิธีที่ฉันสามารถสร้างคำสั่งที่ฉันสามารถพิมพ์ในหน้าต่างเทอร์มินัลเพื่อย่อให้เล็กสุดได้หรือไม่ มันยอดเยี่ยมมากที่จะพิมพ์เพียงอย่างเดียวminและแจ้งให้เทอร์มินัลย่อเล็กสุดในขณะที่ฉันมุ่งเน้นไปที่สิ่งอื่น


1
เป็นไปได้หรือไม่ที่จะใช้ระบบการจอง "ชื่อ" โดยใช้สิทธิ์การใช้ไฟล์ linux
ฉันมีเซิร์ฟเวอร์ผู้ใช้หลาย linux ที่มีผู้ใช้มากกว่า 100 คนใน / etc / passwd ฉันต้องการอนุญาตให้ผู้ใช้ "หนังสือ" / "จอง" ชื่อที่พวกเขาชอบ (ในกรณีนี้คือโดเมนย่อย แต่รายละเอียดนั้นไม่สำคัญ) ฉันได้สร้างไดเรกทอรีชื่อ/reservationsและด้วย chmod 777 หากผู้ใช้ johndoe ทำtouch /reservations/coolsiteเขาจะระบุว่าเขาต้องการ "เป็นเจ้าของ" ชื่อ "ไซต์ยอดนิยม" ควรตั้งค่า "กลไก" เพื่อให้ johndoe สามารถเปลี่ยนใจได้ในภายหลังและrm /reservations/coolsiteยกเลิกการจองชื่อนั้น ผู้ใช้รายอื่นไม่ได้รับอนุญาตให้touch /reservations/coolsiteเพราะ johndoe ขอให้มันก่อน หาก johndoe rmไฟล์ของเขาผู้ใช้รายอื่นได้รับอนุญาตให้จอง ผู้ใช้ไม่สามารถrm / rename / mv / etcไฟล์อื่น ๆได้ ผู้ใช้ johndoe สามารถจองหลายรายการโดยทำ …

2
ฉันจะแทนที่หลายบรรทัดด้วยคำเดียวในไฟล์ (แทนที่แทนที่) ได้อย่างไร
เนื้อหาของfilenameไฟล์ของฉันเป็นดังต่อไปนี้ (ตัวอย่าง): My block of line starts from here START First line second line third line END and end to here for example. ฉันต้องการที่จะแทนที่บล็อกเส้นระหว่างSTARTและมีเพียงคำเดียวเช่นกับEND SINGLEWORDชอบด้านล่าง: My block of line starts from here SINGLEWORD and end to here for example. ฉันสามารถหาบล็อกของบรรทัดด้วยการใช้คำสั่งนี้: grep -Pzo "START(.|\n)*END" filename และผลลัพธ์ของการรันคำสั่งด้านบนจะเป็นดังนี้: START First line second line …


3
ฉันจะเปลี่ยนรหัส ^ L ในหลาย ๆ ไฟล์ใน Ubuntu ได้อย่างไร
ฉันมีไฟล์ XML จำนวนมากมากกว่า 50,000 ไฟล์ ในไฟล์ XML บางไฟล์ไฟล์บางไฟล์จะถูกเขียนเช่นนี้ <filename>abc.JPEG<^Lilename> ^Lเป็นเพียงตัวละครตัวหนึ่ง แต่ฉันไม่สามารถค้นหาความ^Lหมายของ Google ได้ เมื่อฉันใช้catพิมพ์เนื้อหาของไฟล์มันจะแสดงดังต่อไปนี้ <filename>abc.JPEG< ilename> อย่างไรก็ตามฉันต้องการเปลี่ยน<filename>abc.JPEG<^Lilename>เป็น<filename>abc.JPEG</filename> ฉันพบคำสั่งบางคำเพื่อเปลี่ยนคำในไฟล์จำนวนมากเช่น find . -exec perl -pi -e 's/[find_word]/[change_word]/g' {} \; ^Lแต่คำสั่งที่ไม่ทำงานในกรณีของฉันเพราะมันไม่สามารถรู้จักคำค้นหาเมื่อฉันเพียงแค่พิมพ์ ฉัน<filename>abc.JPEG<^Lilename>จะเปลี่ยนเป็น<filename>abc.JPEG</filename>ไฟล์จำนวนมากได้อย่างไร?
8 bash  perl 

2
ฉันจะยกเลิกการติดตั้งโมดูล Perl ทั้งหมดโดยไม่ตั้งใจได้อย่างไร
ฉันพยายามอัพเกรด Perl โมดูลของฉันผ่าน CPAN แต่ฉันไม่ได้ให้ชื่อ regex / module เพื่ออัพเกรด: perl -MCPAN -e 'upgrade'; ฉันสามารถถือว่าเลวร้ายที่สุด (ซึ่งดูเหมือนว่าจะได้รับการสนับสนุนโดยการส่งออกของperldoc perllocal) นั่นคือทั้งหมดโมดูล Perl จาก CPAN กำลังติดตั้ง ฉันจะยกเลิกความยุ่งเหยิงนี้ได้อย่างไร ฉันคิดว่าฉันสามารถลบ/usr/local/share/perlได้ แต่สิ่งที่มีความหมายของสิ่งนั้นคืออะไร แก้ไข:ฉันยังมีพื้นที่ว่าง 95% ในฮาร์ดไดรฟ์ของฉันดังนั้นจึงไม่ใช่เรื่องใหญ่ ฉันไม่ต้องการความยุ่งเหยิงที่ไม่จำเป็นมากมาย ฉันกำลังพิจารณาrmว่ากำลังทำไดเรกทอรีอยู่ให้ทำdpkg --purge perlและทำซ้ำapt-getขั้นตอนการติดตั้งและ CPAN แต่มันจำเป็นจริงๆหรือฉันจะลบโมดูลที่ไม่จำเป็นออกได้/usr/local/share/perlไหม?
8 perl  cpan 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.