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

ไปป์คือการเชื่อมต่อระหว่างกระบวนการระหว่างตัวอธิบายไฟล์ของสองกระบวนการ ไปป์ถูกสร้างขึ้นด้วยฟังก์ชัน POSIX ไปป์ () (จาก <unistd.h>) เชลล์สร้างท่อระหว่างกระบวนการถ้า "|" ใช้สัญลักษณ์: "cmd1 | cmd2" กำหนดเอาต์พุตของ cmd1 ไปยังอินพุตของ cmd2 บน Windows ให้ใช้ CreatePipe () กลไกนี้เปลี่ยนทิศทางอินพุตมาตรฐานเอาต์พุตมาตรฐานและข้อผิดพลาดมาตรฐานไปยังกระบวนการเรียกใน. NET และ Java

4
จำกัด ทศนิยมไว้ที่ 2 ตำแหน่งโดยใช้ไปป์ธรรมดา
ฉันพบตัวอย่างที่ จำกัด ตัวเลขไว้ที่ทศนิยม 2 ตำแหน่งและเปลี่ยนตัวเลขเป็นจำนวนเงินเช่น£ 2.55 {{ number | currency : 'GBP' : true : '1.2-2'}} มีท่อธรรมดาที่เหมือนกันโดยไม่ใช้สกุลเงินหรือไม่?
95 angular  pipe  decimal 

9
วิธีดำเนินการเอาต์พุตของคำสั่งภายในเชลล์ปัจจุบัน
ฉันทราบดีถึงยูทิลิตี้source(aka .) ซึ่งจะนำเนื้อหาจากไฟล์และเรียกใช้งานภายในเชลล์ปัจจุบัน ตอนนี้ฉันกำลังเปลี่ยนข้อความบางส่วนเป็นคำสั่งเชลล์แล้วเรียกใช้งานดังต่อไปนี้: $ ls | sed ... | sh lsเป็นเพียงตัวอย่างแบบสุ่มข้อความต้นฉบับอาจเป็นอะไรก็ได้ sedเช่นกันเป็นเพียงตัวอย่างสำหรับการแปลงข้อความ shบิตที่น่าสนใจคือ ฉันไปป์ทุกอย่างที่ฉันไปถึงshแล้วมันก็วิ่งไป ปัญหาของฉันคือนั่นหมายถึงการเริ่มต้นเชลล์ย่อยใหม่ ฉันอยากให้คำสั่งทำงานภายในเชลล์ปัจจุบันของฉัน เช่นเดียวกับที่ฉันสามารถทำได้source some-fileถ้าฉันมีคำสั่งในไฟล์ข้อความ ฉันไม่ต้องการสร้างไฟล์ชั่วคราวเพราะรู้สึกว่าสกปรก หรือฉันต้องการเริ่มเชลล์ย่อยของฉันด้วยลักษณะเดียวกับเชลล์ปัจจุบันของฉัน อัพเดต โอเควิธีแก้ปัญหาโดยใช้ backtick ใช้งานได้ดี แต่ฉันมักจะต้องทำสิ่งนี้ในขณะที่ฉันกำลังตรวจสอบและเปลี่ยนผลลัพธ์ดังนั้นฉันชอบมากถ้ามีวิธีที่จะทำให้ผลลัพธ์เป็นบางสิ่งในตอนท้าย อัปเดตที่น่าเศร้า อ่า/dev/stdinสิ่งนี้ดูสวยมาก แต่ในกรณีที่ซับซ้อนกว่านั้นมันไม่ได้ผล ฉันมีสิ่งนี้: find . -type f -iname '*.doc' | ack -v '\.doc$' | perl -pe 's/^((.*)\.doc)$/git mv -f $1 $2.doc/i' | source …
92 bash  shell  unix  pipe 

8
ฉันจะรับรายชื่อไปป์ที่เปิดชื่อทั้งหมดใน Windows ได้อย่างไร
มีวิธีง่ายๆในการทดสอบว่าท่อที่ตั้งชื่อของคุณทำงานถูกต้องหรือไม่? ฉันต้องการตรวจสอบให้แน่ใจว่ามีการส่งข้อมูลที่ฉันกำลังส่งจากแอปของฉันอยู่จริง มีวิธีที่ง่ายและรวดเร็วในการรับรายการท่อที่มีชื่อทั้งหมดหรือไม่?
91 windows  winapi  pipe 

10
แยกผลลัพธ์ของคำสั่งตามคอลัมน์โดยใช้ Bash?
ฉันต้องการทำสิ่งนี้: เรียกใช้คำสั่ง จับเอาท์พุท เลือกบรรทัด เลือกคอลัมน์ของบรรทัดนั้น ตัวอย่างเช่นสมมติว่าฉันต้องการรับชื่อคำสั่งจาก a $PID(โปรดทราบว่านี่เป็นเพียงตัวอย่างฉันไม่ได้แนะนำว่านี่เป็นวิธีที่ง่ายที่สุดในการรับชื่อคำสั่งจากรหัสกระบวนการ - ปัญหาจริงของฉันคือ คำสั่งอื่นที่มีรูปแบบผลลัพธ์ที่ฉันไม่สามารถควบคุมได้) ถ้าฉันวิ่งpsฉันจะได้รับ: PID TTY TIME CMD 11383 pts/1 00:00:00 bash 11771 pts/1 00:00:00 ps ตอนนี้ฉันทำps | egrep 11383และได้รับ 11383 pts/1 00:00:00 bash ขั้นตอนต่อไป: ps | egrep 11383 | cut -d" " -f 4. ผลลัพธ์คือ: &lt;absolutely nothing/&gt; ปัญหาคือcutตัดเอาต์พุตด้วยช่องว่างเดียวและเมื่อpsเพิ่มช่องว่างระหว่างคอลัมน์ที่ 2 และ 3 …
88 linux  bash  pipe 

3
วิธีไพพ์อินพุตไปยัง Bash ในขณะที่วนซ้ำและเก็บรักษาตัวแปรหลังจากลูปสิ้นสุดลง
Bash อนุญาตให้ใช้: cat &lt;(echo "$FILECONTENT") Bash ยังอนุญาตให้ใช้: while read i; do echo $i; done &lt;/etc/passwd เพื่อรวมสองสิ่งนี้ก่อนหน้านี้สามารถใช้ได้: echo $FILECONTENT | while read i; do echo $i; done ปัญหาสุดท้ายคือมันสร้างเชลล์ย่อยและหลังจากที่ตัวแปร while ลูปสิ้นสุดลง iไม่สามารถเข้าถึงได้อีกต่อไป คำถามของฉันคือ: วิธีการบรรลุสิ่งนี้: while read i; do echo $i; done &lt;(echo "$FILECONTENT")หรือกล่าวอีกนัยหนึ่ง: ฉันจะแน่ใจได้อย่างไรiมีชีวิตอยู่ในขณะที่วนซ้ำ? โปรดทราบว่าฉันตระหนักถึงการใส่คำสั่ง while เข้าไป{}แต่สิ่งนี้ไม่สามารถแก้ปัญหาได้ (ลองนึกภาพว่าคุณต้องการใช้ฟังก์ชัน while loop in และiตัวแปรreturn …
88 bash  while-loop  stdin  pipe 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.