อะไรคือความแตกต่างระหว่าง Perl, Python, AWK และ sed? [ปิด]


253

แค่อยากรู้ว่าอะไรคือความแตกต่างที่สำคัญระหว่างพวกเขา และพลังของแต่ละภาษา (ซึ่งจะดีกว่าการใช้งาน)

แก้ไข:ไม่ใช่ "vs. " ชอบหัวข้อเพียงแค่ข้อมูล


142
คำถามที่ไม่สร้างสรรค์เหล่านี้มีประโยชน์มาก
Steam

10
แน่นอนว่าแท็บที่อยู่ด้านหน้าเพื่อค้นหาพวกมันจะเป็นประโยชน์ ...

สำหรับประโยชน์ของไพ ธ อนในบรรทัดคำสั่งดู pyp
Neil McGuigan

คำตอบ:


550

ในลำดับการแสดงภาษาที่มีsed, awk, ,perlpython

sedโปรแกรมเป็นบรรณาธิการกระแสและถูกออกแบบมาเพื่อใช้การดำเนินการจากสคริปต์เพื่อแต่ละบรรทัด (หรือมากกว่าปกติช่วงที่ระบุของสาย) ของแฟ้มข้อมูลหรือไฟล์ ภาษามีพื้นฐานมาจากedตัวแก้ไข Unix และแม้ว่าจะมีเงื่อนไขและอื่น ๆ แต่ก็ยากที่จะทำงานกับงานที่ซับซ้อนได้ คุณสามารถทำงานปาฏิหาริย์เล็กน้อยกับมันได้ แต่เสียค่าใช้จ่ายกับผมบนหัวของคุณ อย่างไรก็ตามอาจเป็นโปรแกรมที่เร็วที่สุดเมื่อพยายามทำงานภายในการส่งเงิน (มันมีการแสดงออกปกติน้อยที่สุดที่มีประสิทธิภาพของโปรแกรมที่กล่าวถึง - เพียงพอสำหรับวัตถุประสงค์หลายอย่าง แต่ไม่แน่นอน PCRE - การแสดงออกปกติที่เข้ากันได้กับ Perl)

awkโปรแกรม (ชื่อจากชื่อย่อของผู้เขียนของ - Aho ไวน์เบอร์เกอร์และ Kernighan) เป็นเครื่องมือในการจัดรูปแบบครั้งแรกสำหรับรายงาน มันสามารถใช้เป็น souped-up sed; ในเวอร์ชันที่ใหม่กว่านั้นจะเสร็จสมบูรณ์โดยใช้คอมพิวเตอร์ มันใช้ความคิดที่น่าสนใจ - โปรแกรมนี้ใช้ 'รูปแบบการจับคู่' และ 'การดำเนินการเมื่อรูปแบบตรงกัน' รูปแบบมีประสิทธิภาพพอสมควร (Extended Regular Expressions) ภาษาสำหรับการดำเนินการคล้ายกับ C. หนึ่งในคุณสมบัติที่สำคัญของawkมันคือมันแยกอินพุตโดยอัตโนมัติเป็นบันทึกและแต่ละบันทึกลงในช่อง

Perl เขียนขึ้นในส่วนของ awk-killer และ sed-killer สองโปรแกรมที่มีให้คือa2pและs2pสำหรับการแปลงawkสคริปต์และsedสคริปต์เป็น Perl Perl เป็นหนึ่งในภาษาสคริปต์รุ่นต่อไป (Tcl / Tk อาจเรียกร้องอันดับหนึ่ง) มันมีการจัดการการแสดงออกปกติที่มีประสิทธิภาพรวมกับภาษาที่ทรงพลังมากขึ้น มันให้การเข้าถึงการโทรของระบบเกือบทั้งหมดและมีความสามารถในการขยายของโมดูล CPAN (ทั้งawkมิได้sedขยาย.) หนึ่งในคำขวัญของ Perl คือ "TMTOWTDI - มีมากกว่าหนึ่งวิธีที่จะทำมัน" (ออกเสียงว่า "ทิมช่างประจบ") Perl มี 'วัตถุ' แต่มันเป็นส่วนเสริมมากกว่าส่วนพื้นฐานของภาษา

Python เขียนขึ้นครั้งสุดท้ายและอาจเป็นส่วนหนึ่งในการตอบสนองต่อ Perl มันมีแนวคิดเกี่ยวกับวากยสัมพันธ์ที่น่าสนใจ (เยื้องเพื่อระบุระดับ - ไม่มีวงเล็บปีกกาหรือสิ่งเทียบเท่า) มันเป็นวัตถุเชิงพื้นฐานมากกว่า Perl; มันสามารถขยายได้เหมือนกับ Perl

ตกลง - ใช้เมื่อใด?

  • Sed - เมื่อคุณต้องการแปลงข้อความอย่างง่ายบนไฟล์
  • Awk - เมื่อคุณต้องการเพียงการจัดรูปแบบและสรุปแบบง่ายหรือการแปลงข้อมูล
  • Perl - สำหรับเกือบทุกภารกิจ แต่โดยเฉพาะอย่างยิ่งเมื่องานต้องการนิพจน์ปกติที่ซับซ้อน
  • Python - สำหรับงานเดียวกันกับที่คุณสามารถใช้ Perl สำหรับ

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

(โปรดทราบว่าโดยเฉพาะอย่างยิ่ง 'ภาพรวม' ของ Perl และ Python โดยเฉพาะจะไม่สมบูรณ์อย่างมาก; หนังสือทั้งเล่มสามารถเขียนในหัวข้อ)


82
โพสต์ ++++ จะอ่านอีกครั้ง!
Robert Gamble

24
ยอดเยี่ยมโดยเฉพาะอย่างยิ่ง "เมื่อจะใช้แต่ละส่วน"
Khaled Al Hourani

6
โปรดสังเกตว่าเซนของไพ ธ อนนั้นเป็นสิ่งที่ตรงกันข้ามของ TMTOWTDI ดังนั้นฉันจะบอกว่ามันอาจเป็นปฏิกิริยาต่อ Perl iirc TCL เล็กน้อยหลังจาก Perl และยังค่อนข้างอนุรักษ์นิยมกับ Perl แม้ว่า TCLs ปฏิกิริยาในไวยากรณ์และความซับซ้อนของภาษาไม่ได้วิธีการที่จะทำสิ่ง
JK

7
ไม่ว่าความตั้งใจดั้งเดิมจะเป็นที่ชัดเจนว่าภายหลังการพัฒนา Python และชุมชนหลามนั้นต้องการความสามารถในการอ่านและความสอดคล้องมากกว่า Perl ที่มีความยืดหยุ่นมากกว่า โพสต์ที่ยอดเยี่ยม Jonathan
Martin Beckett

4
@blasto: สำหรับ ETL ฉันต้องการจัดลำดับความสำคัญawkมากกว่าsedสำหรับการเรียนรู้ (แม้ว่าทั้งสองยังคงมีประโยชน์) สำหรับขนาดของงาน: sedมันดีที่สุดเมื่อมันประมวลผลทีละบรรทัดโดยไม่มีที่เก็บข้อมูลจากบรรทัดหนึ่งไปอีกบรรทัด awkมักจะใช้เพื่อสร้างอาร์เรย์เชื่อมโยงกับข้อมูลที่สะสมจากแหล่งที่มาทั้งหมด มันใช้หน่วยความจำมากขึ้นและมีแนวโน้มที่จะเกิดปัญหากับชุดข้อมูลขนาดใหญ่มากกว่าที่sedเป็นอยู่ ฉันไม่เคยได้ยินมาtsawkก่อนที่คุณจะเชื่อมโยงกับมัน ฉันมักจะถอยกลับใน Perl ( แต่คุณอาจจะทำอย่างไรดีกับงูใหญ่) awkเมื่องานมากเกินไปสำหรับ
Jonathan Leffler

91

หลังจากเชี่ยวชาญภาษาไม่กี่โหลคุณจะเบื่อหน่ายกับคนอย่างเอสล็อตต์ (ดูคำตอบที่ขัดแย้งกับคำถามนี้เกือบครึ่งหนึ่งโหวตลงมากที่สุด (+45 / -22) หกปีหลังจากตอบ)

Sed เป็นเครื่องมือที่ดีที่สุดสำหรับไพพ์ไลน์บรรทัดคำสั่งที่แสนง่าย อยู่ในมือของผู้ชำนาญการมันเหมาะสำหรับการสลับซับซ้อนเพียงครั้งเดียว แต่ไม่ควรใช้ในรหัสการผลิตยกเว้นในการวางท่อทดแทนที่ง่ายมาก สิ่งต่างๆเช่น 's / this / that /.'

Gawk (GNU awk) เป็นทางเลือกที่ดีที่สุดสำหรับการจัดรูปแบบข้อมูลที่ซับซ้อนเมื่อมีแหล่งอินพุตเพียงแหล่งเดียวและเอาต์พุตเดี่ยว (หรือหลายเอาต์พุตที่เขียนตามลำดับ) เนื่องจากการทำงานในโลกแห่งความเป็นจริงนั้นสอดคล้องกับคำอธิบายนี้และโปรแกรมเมอร์ที่ดีสามารถเรียนรู้การเพ่งเล็งในสองชั่วโมงจึงเป็นทางเลือกที่ดีที่สุด บนโลกใบนี้ง่ายและเร็วกว่าดีกว่า!

Perl หรือ Python ดีกว่ารุ่น awk หรือ sed ใด ๆ เมื่อคุณมีสถานการณ์อินพุต / เอาท์พุตที่ซับซ้อนมาก ปัญหาที่ซับซ้อนมากขึ้นคือยิ่งคุณใช้ไพ ธ อนมากเท่าไรคุณก็ยิ่งมีจุดยืนในการบำรุงรักษาและความสามารถในการอ่านที่ดีขึ้น อย่างไรก็ตามโปรดทราบว่าโปรแกรมเมอร์ที่ดีสามารถเขียนโค้ดที่อ่านได้ในภาษาใด ๆ และโปรแกรมเมอร์ที่ไม่ดีสามารถเขียนอึที่ไม่มีประโยชน์ในภาษาที่มีประโยชน์ใด ๆ ดังนั้นการเลือก perl หรือ python จะถูกทิ้งไว้อย่างปลอดภัยต่อการตั้งค่าของโปรแกรมเมอร์ มีฝีมือและฉลาด


9
ตกลง 100% รู้ว่าส่วนใหญ่ถ้าไม่ใช่เครื่องมือทั้งหมดและเมื่อใดที่จะใช้งานแต่ละอย่างสิ่งที่ช่างเทคนิคที่ดีจะแตกต่างจากคนทั่วไป
ata

6
ฉันจะเพิ่มอีกเหตุผลที่เลือก Python หรือ Perl แทน awk คือเมื่อความต้องการการแปลงของคุณเกี่ยวข้องกับการตรวจสอบหรือตรรกะที่ซับซ้อนซึ่งภาษาอื่นมีโมดูลที่มีอยู่และมีประสิทธิภาพ คิดเกี่ยวกับสิ่งที่จะจัดการอย่างถูกต้องเช่นอีเมลหรือที่อยู่ถนนใน awk และคุณจะเห็นสิ่งที่ฉันหมายถึง: Perl และหลามมีห้องสมุดที่ทำให้สิ่งต่าง ๆ เช่นนี้เล็กน้อยใน awk เหล่านี้เป็นเรื่องแปลกหรือไม่สามารถใช้ได้
sorpigal

3
จริงๆแล้ว Perl ถูกออกแบบมาเพื่อให้ครอบคลุมทั้ง Sed และ Awk; ฉันคิดว่ามันง่ายกว่าที่จะเขียนมันใน Perl แทนที่จะเรียนรู้ Sed หรือ Awk
แบรดกิลเบิร์

@BradGilbert: เหมือนที่ฉันเพิ่งพูดถึงในคำตอบด้านบน, caveat ของ Perl (& Python, ruby, ฯลฯ ) กว่า awk คือ regexp บางชนิดช้าลงในอดีต: swtch.com/~rsc/regexp/regexp1regual1
Olivier Dulac

1
@OlivierDulac ใช่แล้วนั่นแสดงให้เห็นกรณีทางพยาธิวิทยา หากคุณเปลี่ยนจากa?ⁿaⁿเป็นa??ⁿaⁿเรียกใช้ใน Perl 5 ด้วย1,000,000 มันจะทำงานในเวลาน้อยกว่าสองวินาที time perl -E '$x=1_000_000;$_="a"x$x;$m=("a??"x$x).("a"x$x);say $_=~$m'หากคุณเรียกใช้คนที่ไร้เดียงสาจะใช้เวลามากกว่าสองวินาทีในเวลาเพียง 25 วินาทีสิ่งที่คุณต้องรู้คือ Perl มีคุณสมบัติ regex มากกว่าที่เร็วกว่ารวมถึงการอนุญาตให้คุณมีรหัส Perl ภายใน regex ที่เปลี่ยนแปลงสิ่งที่มันตรงกับ . คุณสามารถใช้โมดูลที่แลกเปลี่ยนบิวด์อินสำหรับหนึ่งในโมดูลเหล่านั้นหากคุณต้องการ
Brad Gilbert

21

ฉันจะไม่เรียกว่าภาษาโปรแกรมที่เต็มเปี่ยมมันเป็นตัวแก้ไขสตรีมที่มีภาษาที่สร้างขึ้นเพื่อแก้ไขไฟล์ข้อความโดยทางโปรแกรม

Awk เป็นภาษาวัตถุประสงค์ทั่วไปมากกว่าเล็กน้อย แต่ก็ยังเหมาะสมที่สุดสำหรับการประมวลผลข้อความ

Perl และ Python เป็นภาษาการเขียนโปรแกรมสำหรับวัตถุประสงค์ทั่วไปอย่างสมบูรณ์ Perl มีรากฐานในการประมวลผลข้อความและมีโครงสร้างคล้าย awk (มีแม้กระทั่งสคริปต์ awk-to-perl ที่ลอยอยู่บนเน็ต) มีความแตกต่างมากมายระหว่าง Perl และ Python ทางออกที่ดีที่สุดของคุณคือการอ่านบทสรุปของทั้งสองภาษาในบางสิ่งเช่น Wikipedia เพื่อทำความเข้าใจกับสิ่งที่พวกเขาเป็น


2
ฉันเคยเห็นการนำ Sokoban มาใช้อย่างไม่เหมาะสมซึ่งจะบอกถึงทัวริงครบถ้วน อย่างไรก็ตามนั่นอาจเป็น sendmail.cf และ TeX
ConcOfOfTunbridgeWells

7
ฉันทำงานกับผู้ชายเมื่อผู้เขียน PostScript เปลี่ยนเครื่องพิมพ์เลเซอร์เป็นเราเตอร์
Sam Kington

10
@Sam: ว้าว! ฉันไม่รู้ว่าเลเซอร์ของเครื่องพิมพ์สามารถหมุนขึ้นมาเพื่อตัดไม้ได้! โอ้เราเตอร์ชนิดผิด
หยุดชั่วคราวจนกว่าจะมีการแจ้งให้ทราบต่อไป

2
sed ไม่ใช่ภาษาที่แปลแล้วใช่มั้ย ก็ไม่เป็นความจริงอย่างสิ้นเชิงขณะที่sed กำลังทำให้สมบูรณ์ ;)
bernard paulus

1
ฉันเห็นการใช้ภาษาที่สี่ใน awk (เนื่องจาก awk สามารถถือได้ว่าเป็นตัวแยกวิเคราะห์โดยสิทธิของตนเองมันค่อนข้างตรงไปตรงมาที่จะใช้ล่ามในนั้น)
Tatjana Heuser

19

อันดับแรกมีสองสิ่งที่ไม่เกี่ยวข้องในรายการ "Perl, Python awk และ sed"

สิ่งที่ 1 - เครื่องมือจัดการข้อความอย่างง่าย

  • sed มันมีขอบเขตงานที่ค่อนข้างคงที่ค่อนข้างเรียบง่ายที่กำหนดโดยแนวคิดของการอ่านและตรวจสอบแต่ละบรรทัดของไฟล์ sed ไม่ได้ถูกออกแบบมาให้อ่านได้โดยเฉพาะ มันถูกออกแบบมาให้มีขนาดเล็กมากและมีประสิทธิภาพมากในเซิร์ฟเวอร์ยูนิกซ์ขนาดเล็กมาก

  • awk มันมีขอบเขตการแก้ไขที่น้อยกว่าเล็กน้อยและเรียบง่ายน้อยกว่า อย่างไรก็ตามการวนลูปหลักของโปรแกรม awk นั้นถูกกำหนดโดยการอ่านบรรทัดของซอร์สไฟล์โดยปริยาย

ภาษาการเขียนโปรแกรมเหล่านี้ไม่สมบูรณ์ ในขณะที่คุณสามารถ - กับงาน - เขียนโปรแกรมที่ค่อนข้างซับซ้อนใน awk มันจะซับซ้อนและอ่านยาก

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

  • Perl

  • หลาม

ควรใช้เมื่อใด

  • sed ไม่เคย มันไม่มีคุณค่าใด ๆ ในยุคคอมพิวเตอร์สมัยใหม่ที่มีหน่วยความจำมากกว่า 32K Perl หรือ Python ทำสิ่งเดียวกันชัดเจนยิ่งขึ้น

  • awk ไม่เคย มันสะท้อนถึงยุคสมัยก่อนหน้าของการคำนวณ แทนที่จะรักษาภาษานี้ (นอกเหนือจากภาษาอื่น ๆ ทั้งหมดที่จำเป็นสำหรับระบบที่ประสบความสำเร็จ) มันดีกว่าที่จะทำทุกอย่างด้วยภาษาที่น่าพอใจเพียงอย่างเดียว

  • Perl ปัญหาการเขียนโปรแกรมใด ๆ ถ้าคุณชอบซินแท็กซ์อิสระที่มีหลายวิธีในการทำสิ่งเดียวกัน Perl คือความสนุก

  • หลาม ปัญหาการเขียนโปรแกรมใด ๆ ถ้าคุณชอบไวยากรณ์ที่ค่อนข้าง จำกัด ซึ่งมีตัวเลือกน้อยกว่าความละเอียดน้อยกว่าและ (อาจ) ชัดเจนยิ่งขึ้น ลักษณะเชิงวัตถุของ Python ทำให้เหมาะสำหรับปัญหาที่มีขนาดใหญ่และซับซ้อน

ความเป็นมา - ฉันไม่ได้ทุบตีและตื่นตัวโดยไม่รู้ตัว ฉันเรียนรู้ awk กว่า 20 ปีที่แล้ว ทำสิ่งต่าง ๆ กับมัน; เคยสอนมันเป็นความสามารถหลักของยูนิกซ์ ฉันเรียน Perl เมื่อ 15 ปีที่แล้ว ทำสิ่งที่ซับซ้อนมากมายกับมัน ฉันทิ้งทั้งคู่ไว้เพราะฉันสามารถทำสิ่งเดียวกันใน Python ได้และมันก็ง่ายขึ้นและชัดเจนขึ้น

มีสองปัญหาร้ายแรงกับ sed และ awk ซึ่งไม่ได้อายุของพวกเขา

  1. ความไม่สมบูรณ์ของการนำไปใช้ ทุกอย่างที่ต้องทำและตื่นตกใจสามารถทำได้ใน Python หรือ Perl ซึ่งบ่อยครั้งจะง่ายและเร็วขึ้นเช่นกัน ไปป์ไลน์เชลล์มีข้อได้เปรียบด้านประสิทธิภาพเนื่องจากการประมวลผลแบบมัลติ Python นำเสนอsubprocessโมดูลเพื่อให้ฉันสามารถกู้คืนข้อดีเหล่านั้นได้

  2. จำเป็นต้องเรียนรู้ภาษาอื่น การทำสิ่งต่าง ๆ ใน Python (หรือ Perl) การใช้งานของคุณขึ้นอยู่กับภาษาที่น้อยลงพร้อมกับเพิ่มความชัดเจน


66
บางข้อโต้แย้งที่ค่อนข้างอ้วนต่อ awk / sed ประแจแบบปรับได้นั้นไม่ได้แทนที่ประแจแบบเปิดด้วยเหตุผลเดียวกันกับที่ทำให้ยังคงตกใจอยู่ บางครั้งเครื่องมืออย่างง่าย ๆ ก็ดีที่สุดสำหรับงาน ฉันเขียน Perl จำนวนมาก แต่สำหรับเชนคำสั่ง piped อย่างง่าย awk / sed เร็วกว่า perl -e
RET

27
คุณไม่สามารถใช้งานได้ทุกอย่างยกเว้น sh, sed และ awk บนระบบที่ไม่ใช่ linux ส่วนใหญ่ หากคุณต้องการให้บางสิ่งบางอย่างทำงานบนโซลาริสนอกการติดตั้ง HP / UX หรือ AIX คุณจะติดอยู่กับ sed และ awk
ConcOfOfTunbridgeWells

27
ครึ่งหนึ่งของสคริปต์เชลล์ของฉันใช้ทั้ง sed หรือ awk พวกเขาอยู่ไกลจากความตาย Python เป็นภาษาสคริปต์ที่ฉันต้องการ แต่บางครั้งการเขียนโปรแกรมและ awk เป็นเครื่องมือที่ดีที่สุดสำหรับงาน เพียงเพราะพวกเขามีการใช้งานมานานหลายปีไม่ได้หมายความว่าพวกเขาล้าสมัย
Jeremy Cantrell

16
@ S.Lott: ฉันไม่ได้แนะนำให้ทุกคนพยายามสร้างเว็บแอพใน awk แต่ถ้าจะบอกว่าพวกเขาไม่ควรใช้มันเป็นเรื่องที่น่ารังเกียจ สำหรับ s & r และ / หรือ tweak อย่างง่าย (โดยเฉพาะไฟล์ข้อความที่มีการคั่น), perl -e หรือ python -c จะไม่มีประสิทธิภาพเท่าซับ / awk ซับในเดียว
RET

25
ฉันไม่ชอบคำตอบเช่นนี้ Sed and awk เข้าใจง่ายในเวลาไม่กี่ชั่วโมงและมีน้ำหนักเบากว่าและมีให้ใช้อย่างกว้างขวางมากกว่าภาษาที่สมบูรณ์ การเขียนโปรแกรมเชลล์มีความเกี่ยวข้องเช่นเคยโดยใช้คำว่า "ไม่เคย" ใช้สิ่งนี้หรือเครื่องมือนั้นจะปัญญาอ่อน แต่นี่ไม่ใช่ความคิดที่ปัญญาอ่อนซึ่งเป็นหนึ่งในรากฐานที่ Perl โผล่ออกมา? โอ้ -
ata

14

ควรใช้เมื่อใด: awk - never - S. Lott

ฉันคิดว่า S. Lott พลาดเครื่องหมายเล็กน้อยด้วยคำแนะนำนี้ ความจริงคือบน Linux และสภาพแวดล้อม UNIX อื่น ๆ awk เป็นเครื่องมือที่มีประโยชน์ที่จะใช้กับ bash, sh และ ksh สำหรับการประมวลผลข้อความอย่างรวดเร็ว แนวคิดของการเขียนสคริปต์ตัวเองคือคุณแก้ปัญหาของคุณโดยการรวมเครื่องมือนี้เข้าด้วยกันซึ่งเป็นเครื่องมือ ดังนั้นในสคริปต์ของผู้ดูแลระบบจึงเป็นเรื่องปกติที่จะมี ls, grep, |, awk, เวลา, ps และอื่น ๆ แต่ละรายการเป็นเครื่องมือที่ scripter รวมกันเหมือนตัวสร้างอิฐด้วยอิฐเพื่อสร้างอาคารให้เสร็จ (เพื่อแก้ปัญหาในมือ) .

ตัวอย่างเช่นฉันเป็นสมาชิกในทีมของทีมที่จัดการอุปกรณ์เพนท์บอลดอทคอม ไซต์อีคอมเมิร์ซนี้ใช้ LAMP stack สำหรับการประมวลผลอัตโนมัติและการปรับมาตรฐานฟีดข้อมูลจากซัพพลายเออร์หลายรายให้เป็นฐานข้อมูลแบ็คเอนด์เราใช้และบำรุงรักษาสคริปต์ที่หลากหลายรวมถึง bash, perl, php และแม้แต่คาดหวัง แต่ละจุดมีจุดแข็งตามโมดูลและ API ที่มีอยู่ ในสคริปต์ทุบตีเราทำการจับคู่รูปแบบด่วนและการกระทำที่เหมาะสมกับรูปแบบตามต้องการโดยใช้ awk โดยไม่จำเป็นต้องเปลี่ยนเป็น PERL สิ่งหนึ่งที่ฉันอยากจะชี้ให้เห็นซึ่งยังไม่ได้รับการเน้นในหัวข้อคือจำนวนสคริปต์ที่ถูกซื้อมาเหล่านี้หรือมาจากโอเพนซอร์ส หากสคริปต์มาเป็น Perl เราจะคงไว้เป็น Perl หากสคริปต์มาเป็น Php เราจะคงไว้เหมือน Php ถ้ามันมาเป็นทุบตีเราคงไว้ว่าเป็นทุบตี;


7
มันเป็น S.Lott ที่เขียนคำตอบที่คุณยกมาไม่ใช่ไบรอัน d foy ...
plusplus

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