ท่อ filepath จะ ImageJ

0

คำถาม

ฉันมีเล็กน้อยบรรทัดคำสั่งเครื่องมือ rjp2tif นั่น extracts radiometric ข้อมูลจากแฟ้มภาพประเภท jpegname แฟ้มเข้าเป็นแฟ้มภาพประเภท tiff แฟ้ม ฉันหวังว่าฉันจะสามารถท่อง filepath จะ ImageJ บบรรทัดคำสั่งและต้อง ImageJ เปิดแฟ้มภาพประเภท tiff แฟ้ม ให้มันจบ rjp2tif เขียนที่ filepath ของแฟ้มภาพประเภท tiff แฟ้มที่จะมาตรฐานแสดงผลหน้าจอ ฉันพยายามต่อไปนี้ในตบ:

$ rjp2tif /path/to/rjpeg | open -a imagej

แล้ว

$ rjp2tif /path/to/rjpeg | open -a imagej -f

คนแรกจะเปิด ImageJ แต่ไม่ได้เปิดแฟ้มได้ ที่สองเปิด ImageJ กับข้อความองหน้าต่างกับ filepath อยู่ในนั้น

นี่คือ macOS Monterey แต่ฉันไม่คิดว่ามันสำคัญ มีใครพยายามจะทำเรื่องนี้กันเสร็จสมบูรณ์หรือยัง เมื่อกี้.

bash macos
2021-11-23 23:05:07
1

คำตอบที่ดีที่สุด

1

คิ rjp2tif คำสั่งกลับมาเป็นแฟ้ม-เส้นทางในการส่งออกและคุณต้องการฝากข้าเอาจดหมายส่งออกเป็นปกติ CLI เถียงกันไปอีกคำสั่งคุณอาจจะสนใจ xargs กองบัญชาการ แต่งโน้ตนั่นที่นายพลกรณีนี้คุณอาจจะเจอบางปัญหาหากแฟ้ม-เส้นทางมีช่องว่างหรือไม่งั้น:

อ่านอวกาศแท็บ,บรรทัดใหม่และจุดจบของแฟ้ม delimited อาร์กิวเมนต์จากมาตรฐานข้อมูลและประมวลผลที่กำหนดเครื่องมือกับพวกเขาเป็นอาร์กิวเมนต์.
ที่อาร์กิวเมนต์หนึ่งตัวเป็นปกติแล้วรายชื่อของโปรแกรมจัดการแฟ้ม@label(ที่ถูกสร้างโดย ls หรือ findตัวอย่างเช่น)ที่ได้ผ่านไป xargs ผ่านทางท่อ.

ดังนั้นในกรณีนี้,เป็นที่เข้าใจว่าแฟ้มแต่ละแฟ้ม-ต้องใช้เส้นทางเดียวที่เส้น(ซึ่งมันเห็นได้ชัดว่าคดีถ้ามีเพียงคนเดียวบนเส้นทั้งหมดนี้)คุณสามารถใช้ตาม NUL-จากข่าวต้องพึ่งคน tr กองบัญชาการ

นี่เป็นคำสั่งคุณจะเอา:

rjp2tif /path/to/rjpeg | tr '\n' '\0' | xargs -0 open -a imagej

ข้อควรจำ:ฉันมี GNU/ระบบลินุกซ์ O ดังนั้นคุณสามารถได้โปรดยืนยันมันทำงานภายใต้ macOS?

FTR,ด้านล่างคือมยังครอบคลุมด้เชลล์รหัสไว้ใจได้บ้ากามแถมสัประหนึ่งเพื่อทดสอบสองคนต่างออกโหมดของ xargs:กำลังสร้างหนึ่งคำสั่งต่อบรรทัด-เถียงกัน(-n1),หรือเป็นคำสั่งเดียวกับทุกเส้น-อาร์กิวเมนต์หนึ่งตัวในหนึ่งไป:

$ printf 'one \ntwo\nthree and four' | tr '\n' '\0' | xargs -0 -n1 \
  bash -c 'printf "Run "; for a; do printf "\"$a\" "; done; echo' bash
Run "one " 
Run "two" 
Run "three and four" 

$ printf 'one \ntwo\nthree and four' | tr '\n' '\0' | xargs -0 \
  bash -c 'printf "Run "; for a; do printf "\"$a\" "; done; echo' bash
Run "one " "two" "three and four" 

######################################
# or alternatively (with no for loop):
######################################

$ printf 'one \ntwo\nthree and four' | tr '\n' '\0' | xargs -0 -n1 \
  bash -c 'printf "Run "; printf "\"%s\" " "$@"; echo' bash
Run "one " 
Run "two" 
Run "three and four" 

$ printf 'one \ntwo\nthree and four' | tr '\n' '\0' | xargs -0 \
  bash -c 'printf "Run "; printf "\"%s\" " "$@"; echo' bash
Run "one " "two" "three and four" 
2021-11-24 14:55:40

@ErickMD ใช่ tr คำสั่งคุณต้องอยู่เหนือมันทำงาน macOS ขอบคุณนะ ฉันพบว่า -t ตัวเลือก(ร่องรอย)เพื่ xargs คือช่วยเพื่อให้แสดงอะไร xargs มันไปที่กองบัญชาการ ในกรณีที่นี่ตอนที่ path/to/tiff คือผ่านไป xargs ผ่านทางในท่อ, xargs rearranges คำสั่งที่จะ open -a imagej path/to/tiff. มีประโยชน์มากๆเลย
Jim Merkel

@ErickMD หนึ่งเพิ่มเติมเรื่องที่คุณพูดถึงอยู่เหนือมันมีเส้นที่จะมาตรฐานผลส่งออกจาก rjp2tif นั่นคือ piped ต้อง xargs. แต่มันอาจจะยังมีหลายบรรทัดจะแสดงผลมาตรฐานถ้าฉันใช้ -v ใช้ตัวเลือกนี้เพื่อให้ rjp2tif. นี่สามารถทำงานยังถ้าผมจะใช้ tee /dev/tty เพื่อแสดงทั้งหมดบรรทัดบนหน้าจอตามด้วย tail -n 1 จะไปสุดท้ายสำหรับเพื่อนชื่อที่น่าเกลียดน่ากลั xargs. ในกรณีนี้บรรทัดคำสั่งคือ: rjp2tif -v /path/to/rjpeg | tee /dev/tty | tail -n 1 | xargs open -a imagej. ฉันทิ้งออกไป tr คำสั่งสำหรับ simplification.
Jim Merkel

ใช่แต่ xargs ยังสามารถรองรับหลายบรรทัดในข้อมูลที่ฉันพูดถึงในคำตอบของฉันและคุณมี 2 ทางเลือกในกรณีนี้:เหมือนกัวิ่งหนึ่ง open คำสั่งสำหรับแฟ้มแต่ละแฟ้ม→ xargs -0 -n1 open -a imagej;หรือวิ่งหนีเป็นโสด open คำสั่งกับแฟ้มทั้งหมดผ่านไปเป็น args→ xargs -0 open -a imagej. ดังนั้นคุณไม่ต้องการ tail -n 1 ทั้งหม(เว้นแต่ว่าคุณสนใจเพียงหนึ่งแฟ้ม,แน่นอน)
ErikMD

ที่จริงแล้วฉันเดาว่าฉัน misinterpreted ของคุณทั:กับ -v ตัวเลือกนี้คุณไม่ได้มีหลายแฟ้ม-ทางมีส่วนเกี่ยวข้องแต่ก็แค่เพิ่มเติม"เสียง"นั้นจะถูกลบออกจาก stdout โดยการใช้ tail -n 1แน่นอน
ErikMD

ใช่แล้ว rjp2tif แค่ทำงานกับแฟ้มเดียวที่อยู่ด้วย คน -v สำหรับ verbose. ดังนั้นคำว่า"เสียง"คือพิมพ์ออกจากข้อมูลกำกับภาพสำหรับแฟ้มได้ ฉันคิดว่าฉันจะพยายามและทำให้ rjp2tif ทำงานสำหรับหลายแฟ้ม
Jim Merkel

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่