Toon posts:

[cat]awk endof of line probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

ik probeer met cat filenaam | awk '{print $1 " " $2 " test"}'

aan een file het woord 'test' aan elke regel toe te voegen.

De file ziet eruit als
woord1 woord2 woord3 woord4

ik wil er dus een woord aan toevoegen per regel.

Helaas gooit awk het woord test aan het begin van de volgende lijn over woord1 heen.

dus
testoord1 woord2 woord3
enz0o verder.

Ik heb geprobeerd met
cat filenaam | awk '{print $1 " " $2 " test" \r}'

dat geeft fatal division by 0

cat filenaam | awk '{print $1 " " $2 " test" /r}'

geeft backslash not last character on line.

Hoe doe ik dat nou?

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 08:09

Cyphax

Moderator LNX/AI
code:
1
2
3
4
cat filenaam | awk '{print $1 " " $2 " test"}'
regel 1 test
regel 2 test
regel 3 test

Dit werkt hier wel gewoon. Net copied.
Anders probeer je het zo:

cat filenaam | awk '{print ""$1" "$2" test"}'

[edit] sorry ik zie dat mijn filenaam file anders was als die van jou
ik kijk ff verder

Saved by the buoyancy of citrus


Verwijderd

Topicstarter
[quote]Op woensdag 28 november 2001 11:58 schreef Cyphax het volgende:
code:
1
2
3
4
cat filenaam | awk '{print $1 " " $2 " test"}'
regel 1 test
regel 2 test
regel 3 test

Dit werkt hier wel gewoon. Net copied.

bij mij resulteert dit dus in
regel 1
testel2
testel3


Anders probeer je het zo:

cat filenaam | awk '{print ""$1" "$2" test"}'

dat levert op:
$1 $2 test
$1 $2 test

:-(

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 08:09

Cyphax

Moderator LNX/AI
er moet een loop in iig
iets als
cat ~/filenaam | awk '{ while ($1 ~ /^d/) {print ""$1" test"}}'
maar dan leest ie steeds de eerste regel alleen en is het een endless loop

Saved by the buoyancy of citrus


Verwijderd

Als ik je probleem goed begrijp, probeer dit dan eens:

cat filenaam | awk '{ printf($1 " " $2 " test\n") }'

Works for me...

Verwijderd

Topicstarter
Er is iets raars met die file.

als ik $1 $4 $3 $2
doe bij print gaat er ook iets fout. Het is een windows based file, dus er zullen wel rare dingen in staan.
Ik ga daar eens naar zoeken.

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 08:09

Cyphax

Moderator LNX/AI
Op woensdag 28 november 2001 12:18 schreef hermanb het volgende:
Er is iets raars met die file.

als ik $1 $4 $3 $2
doe bij print gaat er ook iets fout. Het is een windows based file, dus er zullen wel rare dingen in staan.
Ik ga daar eens naar zoeken.
Dan krijg je idd andere characters dan in een linux file. Daar heb ik ook heel lang mee zitten spelen maar nog steeds niet opgelost.

Saved by the buoyancy of citrus


Verwijderd

Topicstarter
door de files door dos2unix to pipen is het nu opgelost.

level freshmeat.net!

hc

Verwijderd

Je zou in awk natuurlijk ook de record separator (RS) van een '\n' naar '\r\n' kunnen zetten (met de -v of --assign optie).
Pagina: 1