[ IcemanX @ 07.03.2010. 22:30 ] @
Postovanje ,

Imam jedan problemcic,tj imam jedan txt file od nekih 1000 reci ,ispisan normalno rec jedna do druge...e sad bi trebao da svaku rec prebacim tako da budu jedna ispod druge npr ovako :

rec1
rec2
rec3

a trenutno si mi ovako ispisane

rec1 rec2 rec3

kako da napravim najednostavnije programicic ili scriptu da mi taj posao uradi automatski ,postoji li kakva linux naredba u terminalu koja to moze uraditi??
[ Danijel Krmar @ 08.03.2010. 03:01 ] @
Možeš da koristiš na primer Perl ili ako si u Windowsu još bolje Powershell.

Perl:
Code:
use strict;
use warnings;
open (S, "fajl.txt");
open (D, ">novifajl.txt");
my $data = <S>;
my @values = split(/ /, $data);
foreach my $val (@values) {
  print D "$val\n";
}

PowerShell:
Code:
$text = Get-Content fajl.txt
[regex]::Split($text, '[\s,\.]') | Where-Object { $_ -like '*' } | Format-List > novifajl.txt
[ Jbyn4e @ 08.03.2010. 06:45 ] @
Linux? Trebalo bi nekako ovako:

# cat fajl|tr " " "\n" > novifajl


Ili mozda:
tr ' ' '\n' <fajl >novifajl
[ Srđan Pavlović @ 08.03.2010. 07:01 ] @
[email protected] ~ $ cat proba.txt
aa bb cc
[email protected] ~ $ cat proba.txt | tr " " "\n" > proba1.txt
[email protected] ~ $ cat proba1.txt
aa
bb
cc
[email protected] ~ $

Ovo prvo radi pos'o :)
[ Danijel Krmar @ 08.03.2010. 07:11 ] @
Odlično, sve mi se činilo da mora ići jednostavnije, ali tr mi ni na kraj pameti :). Mnogo moćan alat za manipulaciju teksta.

Drugo radi isto pos'o, a rekao bih i da je više u duhu tr sintakse :).
[ Srđan Pavlović @ 08.03.2010. 07:18 ] @
Da, da rade oba... ja sam nesto pogresno kucao pa mi nije radio drugi :)

Drugo je i elegantnije jer ide samo tr komanda, a u prvoj joj se prosledjuje output iz cat.
[ IcemanX @ 08.03.2010. 11:33 ] @
e ljudi hvala svima na odgovorima,uspeo sam sinoc preko perla nesto da izvedem,ali mi nije savrseno bas radilo..u svakom slucaju hvala vam