คำถามติดแท็ก gnu-parallel

1
การใช้ sed with parallel ให้ผลลัพธ์เปล่าเมื่อเปลี่ยนเส้นทางไปยังไฟล์
ฉันกำลังใช้ zsh เปลือก. ฉันพยายามใช้ sed เพื่อแทนที่ข้อความในไฟล์จำนวนมากโดยใช้การขนานเพื่อเร่งความเร็วของกระบวนการ เมื่อฉันทดสอบนี้ในไฟล์เดียวและปล่อยให้คำสั่งออกไป stdout ฉันเห็นผลลัพธ์ที่คาดหวัง เมื่อฉันพยายามเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์ฉันได้ไฟล์ว่างเปล่า เกิดอะไรขึ้น? นี่คือตัวอย่างเล็ก ๆ น้อย ๆ โดยใช้ไฟล์ข้อมูลที่สร้างขึ้นเพียงไฟล์เดียวที่คุณสามารถตัดและวางเพื่อแสดง ... setopt interactivecomments # In this trivial example it is obviously non-sensical # to use parallel, but in reality I have many files... # Some very simple input data... paste <(printf "%s\n" `seq 1 …

1
ดาวน์โหลดชุด URL จากบรรทัดคำสั่งแบบมัลติเธรด
ฉันมี 100,000 ไฟล์ URL ขนาดเล็กสำหรับดาวน์โหลด ต้องการใช้ 10 เธรดและต้องมีการวางท่อ ฉันเชื่อมผลลัพธ์เป็นไฟล์เดียว แนวทางปัจจุบันคือ: cat URLS | xargs -P5 -- curl >> OUTPUT มีตัวเลือกที่ดีกว่าที่จะแสดงความคืบหน้าของการดำเนินการทั้งหมดหรือไม่ จะต้องทำงานจากบรรทัดคำสั่ง

1
เข้ารหัสไฟล์ gnu- ขนานพร้อมช่องว่างหรืออักขระพิเศษ
ฉันพยายามเข้ารหัสไฟล์จำนวนมากด้วยรหัสด้านล่าง: find . -name "*.vi" | sort | parallel --gnu -j 4 --workdir "$PWD" ' echo "Encrypting {/.} ..." gpg -r user@myemail.com -o "/tank/test/{/.}.gpg" -e "{}" '; สิ่งนี้ใช้ได้ดี แต่ถ้าชื่อไฟล์ไม่มีช่องว่างหรืออักขระพิเศษ (! หรือ ') นอกจากการตั้งชื่อไฟล์ใหม่ทั้งหมดแล้วมีวิธีทำให้รหัสนี้ใช้งานได้หรือไม่?

1
GNU ขนานไม่แบ่งงานเท่ากัน
ความเข้าใจของฉันคือการที่ตัวเลือก -X ควรกระจายข้อโต้แย้งอย่างเท่าเทียมกันในหมู่งาน แต่ฉันได้รับการแจกแจงที่เบ้มาก: user@host:/tmp/ptest$ count() { > echo $# > } user@host:/tmp/ptest$ export -f count user@host:/tmp/ptest$ count *.jpg 5825 user@host:/tmp/ptest$ parallel -X count ::: *.jpg 5039 197 197 197 195 น่าสนใจพอเพียงการใช้ชุดย่อยของไฟล์นำไปสู่การแจกแจงแบบสม่ำเสมอของพารามิเตอร์: user@host:/tmp/ptest$ count p129*.jpg 975 user@host:/tmp/ptest$ parallel -X count ::: p129*.jpg 244 244 244 243 user@host:/tmp/ptest$ count p12*.jpg 4007 …

1
การใช้ GNU Parallel เพื่อ scp ไฟล์ขนาดใหญ่แยกมันออกเป็นชิ้น ๆ ต่อโฮสต์
ฉันใช้ Ansible เพื่อตั้งค่าการกำหนดค่าบนหลาย ๆ โหนดและเป็นส่วนหนึ่งของการตั้งค่านี้ฉันต้องแยกไฟล์ขนาดใหญ่หนึ่งไฟล์ด้วย n บรรทัดและคัดลอกแต่ละส่วนไปยังไฟล์ระยะไกลโดยไม่ต้องสร้างสำเนาโลคัลของแต่ละอัน (เช่นทุบตี แยก คำสั่งทำ) Ansible ไม่สามารถทำสิ่งนี้ได้ตามค่าเริ่มต้น (หรือฉันยังไม่ทราบวิธีการทำ) ดังนั้นฉันจึงตัดสินใจใช้ GNU Parallel ฉันพบ ที่นี่ การคัดลอกจาก stdin อาจทำได้ง่ายเช่นนี้ ~$ echo "Lots of data" | ssh user@example.com 'cat > big.txt' แต่ฉันต้องการทำสิ่งนี้พร้อมกันกับโฮสต์หลายคน! ดังนั้นนี่คือตัวอย่างอินพุต: ~$ cat hosts.txt 1.1.1.1 2.2.2.2 3.3.3.3 ~$ cat data.txt lots of ... lines ฉันคำนวณจำนวนบรรทัดต่อโหนดโดยทำ "wc -l" …

1
ฉันจะบังคับให้ gnuparallel ดำเนินการคำสั่งตามลำดับได้อย่างไร
Gnu parallel เป็นเครื่องมืออันทรงพลังที่ฉันใช้เพื่อรันคำสั่ง BASH อิสระจำนวนมากเป็นชุดเดียวในแบบคู่ขนาน ฉันต้องการเรียกใช้คำสั่งเดียวกัน SEQUENTIALLY โดยไม่มีการเปลี่ยนแปลงคำสั่งที่ฉันใช้อย่างมีนัยสำคัญ ฉันรู้ว่ามีสวิตช์ที่บังคับให้ส่งออกที่จะถูกส่งกลับเป็น THOUGH ทำงานแบบเรียงลำดับ แต่ฉันต้องการให้ Gnuparallel RUN ทำงานจริงตามลำดับ เหตุผลของฉันคือเพื่อวัตถุประสงค์ในการทดสอบบนเครื่องที่มีแนวโน้มว่าจะร้อนเกินไปการแก้ปัญหาฮาร์ดแวร์ของฉันไม่ใช่ตัวเลือกนอกจากนี้เรายังสามารถจินตนาการถึงการทดสอบอื่น ๆ ที่ใช้ gnuparallel ตามลำดับจะเป็นประโยชน์ ดังนั้น. มีวิธีเรียกใช้ gnuparallel ตามลำดับหรือฉันต้องการแยกคำสั่ง gnuparallel ด้วยตนเองที่กำหนดไว้ในคำสั่งส่วนประกอบและเรียกใช้งานตามลำดับหรือไม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.