Làm thế nào để sửa đổi đầu ra trong đường ống lệnh bash


10

Ví dụ, tôi đã nhận được từ một số dòng một số dòng

$ some-command
John
Bob
Lucy

Bây giờ tôi muốn thêm lệnh xích, điều chỉnh đầu ra.

$ some-command | other-command
Hi John Bye
Hi Bob Bye
Hi Lucy Bye

Viết như thế nào other-command? (Tôi là người mới trong bash)

Câu trả lời:


16

ôi

$ some-command | awk '{print "Hi "$1" Bye"}'

quyến rũ

$ some-command | sed 's/\(.*\)/Hi \1 Bye/'

Ví dụ

Sử dụng awk:

$ echo -e "John\nBob\nLucy" | awk '{print "Hi "$1" Bye"}'
Hi John Bye
Hi Bob Bye
Hi Lucy Bye

Sử dụng sed:

$ echo -e "John\nBob\nLucy" | sed 's/\(.*\)/Hi \1 Bye/'
Hi John Bye
Hi Bob Bye
Hi Lucy Bye

Bạn đã quênsome-command | paste -d\ <(printf '%s\n' Hi Hi Hi) - <(printf '%s\n' why Why WHY??)
kojiro

@kojiro - pastehôm nay không cảm thấy như vậy, cảm ơn 8-)
slm

5

Mã dưới đây đọc dòng sau dòng, lưu trữ trong biến LINE. Bên trong vòng lặp, mỗi dòng được ghi lại thành đầu ra tiêu chuẩn, với việc thêm "Hi" và "Bye"

#!/bin/bash

while read LINE ; do
   echo "Hi $LINE Bye"  
done

4

Bash trong khi vòng lặp và ống dẫn:

echo -e "John\nBob\nLucy" | while read n; do echo "hi $n bye"; done
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.