Koniecznie musi być awk? Łatwiej ci by było przez tr -d '\n'.
--
Z pozdrowieniami,
Krzysztof Mitko
Hi! I'm a signature virus. Please copy me into .signature and help me spread.
> Koniecznie musi być awk? Łatwiej ci by było przez tr -d '\n'.
Nie musi być awk... po prostu kilka rzeczy przy obróbce pliku robię w awk,
ale brak mi doświadczeń a skrypt dziś musi ruszyć więc chętnie wykorzystam
Twój sposób. Dziękuję bardzo.
Pozdrawiam
Tomek
> Witam.
> Od wczoraj męczę ten problem i studiuję tutoriale AWK, ale nie potrafię
> usunąć z pliku znaków końca linii. Może ktoś bardziej doświadczony pomoże.
BEGIN { ORS="" } { print }
.pk.
> Od wczoraj męczę ten problem i studiuję tutoriale AWK, ale nie potrafię
> usunąć z pliku znaków końca linii. Może ktoś bardziej doświadczony pomoże.
Jeśli masz częściej z czymś takim do czynienia, to polecam poznać Perla
(albo ruby, powinno być tak samo/podobnie).
perl -pe 'chomp;' < stary_plik > nowy_plik
Się postara jak odpowiesz na dwa pytania.
1) Czy chodzi o to aby z pliku zrobić jedną długa linię?
2) Czy chodzi o to, że na końcu każdej liniii są dziwne znaczki?
Warto było by przeczytać http://rtfm.bsdzine.org
KAcper
--
Mail => www.rot13.com
> Się postara jak odpowiesz na dwa pytania.
> 1) Czy chodzi o to aby z pliku zrobić jedną długa linię?
> 2) Czy chodzi o to, że na końcu każdej liniii są dziwne znaczki?
Opcja pierwsze...
Mam już jednak kilka odpowiedzi i muszę sie zdecydować czy uczyć się dalej
awk (na razie to lama ze mnie totalna) czy pomyśleć o perlu... a może
jeszcze coś innego?
Tomek
OK. Czyli żeby ze strumienia wyjąć znaki EOL.
> Mam już jednak kilka odpowiedzi i muszę sie zdecydować czy uczyć się dalej
> awk (na razie to lama ze mnie totalna) czy pomyśleć o perlu... a może
> jeszcze coś innego?
Programik w c pisze sie jako ćwiczenie do drugiego rozdziały B.W.Kernighan,
D.M.Ritchie "Język ANSI C".
#v+
#include <stdio.h>
main()
{
int ch;
while ((ch = getchar()) != EOF)
if (ch != '\x0a') {
putchar(ch);
}
}
#v-
> Programik w c pisze sie jako ćwiczenie do drugiego rozdziały B.W.Kernighan,
> D.M.Ritchie "Język ANSI C".
> #v+
> #include <stdio.h>
>
> main()
> {
> int ch;
>
> while ((ch = getchar()) != EOF)
> if (ch != '\x0a') {
> putchar(ch);
> }
> }
> #v-
>
Tak... cos pamiętam. Ta książka to była moja biblia jakieś 10 lat temu.
Miło powspominać, jednak ja potrzebowałem prościuteńkie rozwiązanie pod
BASHa, bez pisania odrębnego programu - choć biorąc pod uwagę ile rzeczy
robię na pliku za pomocą skryptu, to może lepiej użyć C... ale to w
następnej wersji... prowizorka już działa ;-)
Tomek
Widzę, że
1) Rzuciłeś w sposób mocno niejednoznaczny jakieś hasło będące częścią
większego problemu.
2) Podałem ci w zaistniałem sytuacji to co moja intuicja podpowiadała
jako najmniejsze rozwiązanie tego wycinka.
3) A jeśli jest to większy problem to rzeczywiście wydaje się że
rozwiązania kolegów są znacznie lepsze.Zwłaszcza te Krzysztofa Mitko
i Piotra Keplicza.
> [...]
W tej sytuacji radziłbym poświęcić te 45 minut na poczytanie stronki
którą Ci podsunąłem w pierwszej wypowiedzi.
Jeszcze jedna rada. Gdybyś się zastosował do wskazówek ze wspomnianej
stronki i zapodał na czym polega przetwarzanie które robisz to mógłbym
bazując na całym moim doświadczeniu powiedzieć Ci które ze znanych mi
narzędzi nadają się najlepiej. I zapewne nie ja jeden.
> Jeszcze jedna rada. Gdybyś się zastosował do wskazówek ze wspomnianej
> stronki i zapodał na czym polega przetwarzanie które robisz to mógłbym
> bazując na całym moim doświadczeniu powiedzieć Ci które ze znanych mi
> narzędzi nadają się najlepiej. I zapewne nie ja jeden.
Do przetwarzania pliku tekstowego? Niezależnie od tego co robi, prawie na
pewno najlepszy będzie perl/ruby. Oczywiście, pewne rzeczy łatwiej/szybciej
zrobić w czym innym. Ale do przetwarzania tekstów...
O ruby się nie wypowiem, a w perlu zarabiam od półtora roku.
Ponieważ właśnie nie wiadomo, co naprawdę robi pytający zasugerowałem aby
zdradził co jest jego celem i w jakim pracuje środowisku aby dostał "most
fitted answers".
> Ponieważ właśnie nie wiadomo, co naprawdę robi pytający zasugerowałem aby
> zdradził co jest jego celem i w jakim pracuje środowisku aby dostał "most
> fitted answers".
Cóż, pytanie zadane było dość precyzyjnie 'jak usunąć znaki końca linii z
pliku', więc nie wiem, skąd odsyłka do rtfm. Nie wiem jak
definiujesz 'najmniejsze rozwiązanie problemu', ale program w C wydaje mi
się overkillem.
Przypomniało mi się, jak ja kiedyś walczyłem aby usunąć znaki końca linii
z kilku tyś. windowsowych plików. Był to newsowy spool z windzianego
slrnpulla.
Wiedziałem o dos2unix, ale nie chciało mi się wymyślać skryptów, więc
cały windziny spool 'przepuściłem' przez lokalny serwer ftp.
Sposób prosty a skuteczny ;)
Później wyszło jakieś makro do slrna które samo wycinało te znaki, więc i
problem zniknął.
_Pozdrawiam_
_bufi_