awk/bash - prezentacja wypisanych danych

0

Witam,
Dopiero zacząłem uczyć się awk i nie bardzo mogę poradzić sobie z jedną sprawą, pewnie banalną:)
A więc tak, potrzebuję zrobić coś takiego:

NR NAZWA PID
1 bash 12866
2 ps 14679
3 awk 14680
4 sed 14681

Chodzi głównie o spacje między kolumnami, niestety póki co dostaje wszystko zlane:

0 NAZWAPID
1 bash12866
2 ps14679
3 awk14680
4 sed14681

Mój kod wygląda jak na razie tak:

#!/bin/bash

b=0
c=`ps | awk '{print ($4 $1)}' |sed 's/CMD/NAZWA/'`

for a in $c; do
	echo $b $a " "
let "b++"
done

Próbowałem w ten sposób:

print($4" "$1)

Natomiast to zamiast znaku spacji daje mi znak nowej linii i wynik jest taki:

0 NAZWA  
1 PID  
2 bash  
3 12866  
4 zad1  
5 15028  
6 zad1  
7 15029  
8 ps  
9 15030  
10 awk  
11 15031  
12 sed  
13 15032 
0

Jakie są dane wejściowe?
Spróbuj tak:
c=ps | awk '{print ($4, $1)}' |sed 's/CMD/NAZWA/'

0

awk ma coś takiego, jak sekcje begin i end (o ile pamiętam nazwy). Tam możesz zainicjalizować sobie zmienną i jej wartość wypisywać potem przy pomocy print. Zatem myślę, że dałoby się to rozwiązać jakoś tak:

echo "NR NAZWA PID" && <odpowiedni awk>

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.