Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Een bepaalde rij cutten en tonnen  (gelezen 1462 keer)

Offline eclectica

  • Lid
Een bepaalde rij cutten en tonnen
« Gepost op: 2011/10/03, 19:46:51 »
Ik ben op zoek naar een commando die een bepaalde rij cut en dan toont

Ik heb in een file(blabla.txt):

Jef jefke
jan jantje

ik wil enkel 'jef' tonen

ik dacht hieraan; awk < blabla.txt '{ print $1 }' | cut -d: -f1

maar hij toont dan ook 'jan'

thnx

Re: Een bepaalde rij cutten en tonnen
« Reactie #1 Gepost op: 2011/10/03, 20:36:39 »
Om lijn x te printen:
sed -n 'xp'

Bijvoorbeeld:
sed -n '1p'
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline eclectica

  • Lid
Re: Een bepaalde rij cutten en tonnen
« Reactie #2 Gepost op: 2011/10/03, 21:41:26 »
Om lijn x te printen:
sed -n 'xp'

Bijvoorbeeld:
sed -n '1p'
thnx! maar kan ik deze nu ook in een lus gebruiken en '1' vervagen door een variabele?
Ik heb het hier geprobeerd maar het lukte niet
let i=1;
while read line
do
 
 awk < users.txt '{ print $1 }' | sed -n '$ip'
 let i++;
done <users.txt
Hier krijg ik enkel dan 'p' te zien ...

Offline eclectica

  • Lid
Re: Een bepaalde rij cutten en tonnen
« Reactie #3 Gepost op: 2011/10/03, 21:46:10 »
Om lijn x te printen:
sed -n 'xp'

Bijvoorbeeld:
sed -n '1p'
thnx! maar kan ik deze nu ook in een lus gebruiken en '1' vervagen door een variabele?
Ik heb het hier geprobeerd maar het lukte niet
let i=1;
while read line
do
 
 awk < users.txt '{ print $1 }' | sed -n '$ip'
 let i++;
done <users.txt
Hier krijg ik enkel dan 'p' te zien ...
Ok opgelost door het zo te doen quote bij p en niet bij variable
awk < users.txt '{ print $1 }' | sed -n $i'p'

Re: Een bepaalde rij cutten en tonnen
« Reactie #4 Gepost op: 2011/10/04, 08:33:09 »
Om een variabele in een quote te krijgen, gebruik je dubbele quotes, i.e. "${i}p" (Die accolades zijn om aan te geven wat de naam van de variabele is, i dus, en niet ip)
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline edehont

  • Lid
Re: Een bepaalde rij cutten en tonnen
« Reactie #5 Gepost op: 2011/10/14, 20:14:44 »
Als ik het goed begrijp wil je van een bestandje zoals:

#blabla.txt
Jef Jefke
Jan Jantje

kunnen selecteren welke regel je print en van die regel dan het eerste woord.

Als je bijvoorbeeld de officiele naam van Jefke wilt opzoeken zou ik dat zo doen:
awk '/Jefke/{print $1}' blabla.txt
N.B.: jouw gebruik van cut snap ik niet, want je gebruikt cut -d: maar er zit helemaal geen ':' in je voorbeeldfile.
Als je het met cut wilt doen kan het ook, maar dan moet je ook grep gebruiken om de juiste regel te zoeken:
grep Jefke blabla.txt |cut -d' ' -f1Als je het met sed wilt doen moet je alles achter de eerste spatie weggooien:
sed -n '/Jefke/s/ .*$//p' blabla.txt
Mijn keuze zou zijn awk, dat biedt de meeste mogelijkheden om later meer functionaliteiten toe te voegen. Ingewikkelde dingen met sed vind ik persoonlijk een drama.

Werken met variabelen:
naam='Jantje'
awk -v n=$naam '/n/{print $1}' blabla.txt
Groeten,
Eric