Bash komut satırında çıktı nasıl değiştirilir


10

Örneğin, bazı komutlardan bazı satırlar aldım

$ some-command
John
Bob
Lucy

Şimdi zincirleme komutunu eklemek istiyorum, bu da çıktıyı değiştiriyor.

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

Nasıl yazılır other-command? (Ben bash'ta bir acemiyim)

Yanıtlar:


16

awk

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

sed

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

Örnekler

Kullanma awk:

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

Kullanma sed:

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

Unuttunsome-command | paste -d\ <(printf '%s\n' Hi Hi Hi) - <(printf '%s\n' why Why WHY??)
Kojiro

@kojiro - pastebugün yolu hissetmiyordu , teşekkürler 8-)
slm

5

Aşağıdaki kod satır satır okur ve değişkende saklanır LINE. Döngünün içinde, her satır "Hi" ve "Bye" ilavesi ile standart çıktıya geri yazılır

#!/bin/bash

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

4

Döngüde ve borularda basma:

echo -e "John\nBob\nLucy" | while read n; do echo "hi $n bye"; done
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.