ไฟล์ข้อความที่ไม่เรียงลำดับ 2 ไฟล์ที่มีความยาวต่างกันจะแสดงเคียงข้างกันได้อย่างไร(ในคอลัมน์)ในไฟล์shell
ให้one.txt
และtwo.txt
:
$ cat one.txt
apple
pear
longer line than the last two
last line
$ cat two.txt
The quick brown fox..
foo
bar
linux
skipped a line
แสดง:
apple The quick brown fox..
pear foo
longer line than the last two bar
last line linux
skipped a line
paste one.txt two.txt
เกือบจะใช้เคล็ดลับ แต่ไม่ได้จัดแนวคอลัมน์อย่างสวยงามเนื่องจากพิมพ์เพียงแท็บเดียวระหว่างคอลัมน์ 1 และ 2 ฉันรู้วิธีการนี้ด้วย emacs และ vim แต่ต้องการให้เอาต์พุตแสดงเป็น stdout สำหรับการวางท่อ ect
วิธีแก้ปัญหาที่ฉันใช้sdiff
แล้วต่อท่อเพื่อ sed เพื่อลบเอาท์พุทsdiff
เพิ่ม
sdiff one.txt two.txt | sed -r 's/[<>|]//;s/(\t){3}//'
ฉันสามารถสร้างฟังก์ชั่นและติดไว้ใน.bashrc
คำสั่งของฉันได้แต่แน่นอนว่ามีคำสั่งนี้อยู่แล้ว (หรืออาจเป็นโซลูชันที่สะอาดกว่า )?