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

5
ขึ้นบรรทัดใหม่คั่น xargs
เป็นไปได้ไหมที่จะxargsใช้newline เป็นตัวคั่นเท่านั้น ? (ในทุบตีบน Linux และ OS X หากเรื่องนั้น) ฉันรู้ว่า-0สามารถใช้งานได้ แต่มันเป็น PITA เนื่องจากไม่ใช่ทุกคำสั่งรองรับเอาต์พุตที่คั่นด้วย NUL
40 linux  bash  xargs 

3
ฉันจะจัดการช่องว่างในชื่อไฟล์เมื่อใช้ xargs ในการค้นหาผลลัพธ์ได้อย่างไร
หนึ่งในวิธีปฏิบัติทั่วไปของฉันคือการใช้ greps กับไฟล์ทุกประเภทเช่นหาไฟล์ HTML ทั้งหมดที่มีคำว่า "rumpus" อยู่ในนั้น ฉันจะใช้มัน find /path/to -name "*.html" | xargs grep -l "rumpus" บางครั้งจะกลับมาไฟล์ที่มีช่องว่างในชื่อของมันเช่นfind my new file.htmlเมื่อxargsผ่านสิ่งนี้ไปยังgrepฉันได้รับข้อผิดพลาด: grep: /path/to/bad/file/my: No such file or directory grep: new: No such file or directory grep: file.html: No such file or directory ฉันสามารถดูสิ่งที่เกิดขึ้นที่นี่: ไปป์หรือxargsคือการรักษาพื้นที่เป็นตัวคั่นระหว่างไฟล์ แต่สำหรับชีวิตของฉันฉันไม่สามารถหาวิธีป้องกันพฤติกรรมนี้ได้ สามารถใช้find+ ได้xargsหรือไม่ หรือฉันต้องใช้คำสั่งที่แตกต่างอย่างสิ้นเชิง?
28 find  grep  pipe  xargs 

6
ป้องกัน xargs จากการออกจากข้อผิดพลาด
ตามหน้า man, xargs จะออกหากหนึ่งในบรรทัดการดำเนินการออกจากกับข้อผิดพลาด 255: หากการเรียกใช้คำสั่งออกจากสถานะ 255, xargs จะหยุดทันทีโดยไม่ต้องอ่านอินพุตเพิ่มเติมใด ๆ ข้อความแสดงข้อผิดพลาดออกมาใน stderr เมื่อเกิดเหตุการณ์นี้ ฉันจะได้รับ xargs เพื่อไม่ทำเช่นนี้ได้อย่างไร ฉันมีงานแบ็ตช์แบบ 1500 หรือมากกว่านั้นที่ฉันต้องการรันครั้งละ 50 บรรทัด ฉันพบว่ามันกำลังจะตายในบางบรรทัดและไม่ได้ทำงานให้เสร็จ ไม่ดี! คำถามที่ดียิ่งขึ้นคำถามที่อธิบายสิ่งที่ฉันพยายามทำคือ: ฉันจะรันสคริปต์แบทช์ 1,500 บรรทัดได้ครั้งละ 50 บรรทัดเพื่อที่จะไม่ออกจากงานที่อยู่ตรงกลางและเพื่อให้ผลลัพธ์ถูกจับไปยังไฟล์บันทึกบางชนิด?

2
เปลี่ยนเส้นทางไปยัง stdin แทนการโต้แย้งเมื่อใช้ xargs [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา สำหรับ exmaple ใช้คำสั่ง cat foo.txt | xargs -I{} -n 1 -P 1 sh -c "echo {} | echo" foo.txtมีสองบรรทัด foo bar คำสั่งข้างต้นพิมพ์อะไร

3
ติดตามความคืบหน้าด้วย xargs
ฉันใช้ xargs เพื่อรันคำสั่งในชุดของพารามิเตอร์การป้อนข้อมูลบางอย่างเช่นนี้ cat <someinput> | xargs -n 1 -P 5 <somecmd> ไฟล์อินพุตนั้นยาวและใช้เวลานานในการรัน ดังนั้นฉันแค่รอให้พรอมต์คำสั่งปรากฏขึ้น มีวิธีแสดงแถบความคืบหน้าสำหรับจำนวนอาร์กิวเมนต์ที่มีการป้อนข้อมูลที่เสร็จสมบูรณ์หรือไม่? ฉันพยายามใช้ 'บาร์' แต่ฉันได้รับ 'ไม่มีที่สิ้นสุด' เสมอ ดูเหมือนว่า xargs จะอ่านอินพุตทั้งหมดก่อนดำเนินการคำสั่ง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.