Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2009-01-29 17:11:31

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Pare plików z jednego - według kryteriów

Witam! mam taki problem:
Mam plik z taką zawartością:

~
numer 1234
Kowalski Jan
dfsjksdlf
ioerewoiruewior
rewrewrew itp itp

^

~
numer 5345
Nowak Alojzy
adasdasdfsjksdlf
ghfghioerewoiruewior
ghfgttrewrewrew itp itp

^

~
numer 7284
Psikuta Alfred
jhjgjdfsjksdlf
lklkioerewoiruewior
tyrtyrewrewrew itp itp

^

~
numer 2237
Kotowicz Bernart
dfsdsadsjksdlf
rerwioerewofgfdiruewior
qwqwqrewrewrew itp itp

^

Jak widać dane każdej osoby objęte są znakami ~ i ^. I teraz pytanie :
Jest mozliwość podzielenia tego pliku na wiele ( tak myślałem żeby użyć tych znaków - ~ i ^ ) aby w każdym była jedna osoba a nazwą pliku był numer który występuje u każdej osoby?? Np:

plik o nazwie: 1234

z danymi :

numer 1234
Kowalski Jan
dfsjksdlf
ioerewoiruewior
rewrewrew itp itp

drugi plik o nazwie: 5345

z danymi:

numer 5345
Nowak Alojzy
adasdasdfsjksdlf
ghfghioerewoiruewior
ghfgttrewrewrew itp itp

itd. Jest mozliwość zrobienia tego w bashu albo z pomocą php??

Był bym bardzo wdzięczny za pomoc!


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#2  2009-01-29 17:28:38

  pyrion - Użytkownik

pyrion
Użytkownik
Zarejestrowany: 2005-10-14

Re: Pare plików z jednego - według kryteriów

Jest możliwe zrobienie tego w bashu. Czytasz po kolei wiersze i przekierowujesz je do pliku. Znak "^" i puste linie pomijasz, a jak trafisz na tyldę to tworzysz nowy plik.

Offline

 

#3  2009-01-29 17:30:17

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: Pare plików z jednego - według kryteriów

Noo ok!Schemat nie problem obmyślić, tylko czym to zrobić??


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#4  2009-01-29 17:35:11

  lis6502 - Łowca lamerów

lis6502
Łowca lamerów
Skąd: Stalinogród
Zarejestrowany: 2008-12-04

Re: Pare plików z jednego - według kryteriów

Heh, pogooglaj za 'Advanced Bash Scripting', na debian.linux.pl w dziale howto masz polecenia z krótkim opisem
Na szybko: tworzenie pliku - touch
przekierowanie >>, z nadpisaniem > itp.

Offline

 

#5  2009-01-29 17:44:03

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: Pare plików z jednego - według kryteriów

Noo spokoo! tylko że tam są wszystkie polecenia w bashu nie mówie że zazwyczaj łączy sie polecenia. A zna ktos konkretną metodę której mogę użyć dla rozwiązania problemu??


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#6  2009-01-29 17:50:08

  lis6502 - Łowca lamerów

lis6502
Łowca lamerów
Skąd: Stalinogród
Zarejestrowany: 2008-12-04

Re: Pare plików z jednego - według kryteriów

debbie napisał(-a):

Schemat nie problem obmyślić

Obmyślaj,

Kod:

 touch skript.sh && nano skript.sh && chmod +x skript.sh && bash -x skript.sh

Ta metoda działa w każdym przypadku.

Offline

 

#7  2009-01-29 17:56:21

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: Pare plików z jednego - według kryteriów

No widze że ładnie operujesz poleceniami w bashu! Gorzej tylko ze zrozumieniem tego o co mi chodzi! Takie podstawy łączenia i operacji na plikach to ja znam! Chodzi mi tylko o konkretny przykład użycia konkretnego polecenia które z jednego pliku zrobi mi pare według podanych kryteriów.
A jak masz zamiar mi tłumaczyć jak łączyć skrypty ze sobą i tłumaczyć co znaczy touch to zastanów sie czy chcesz pomóc czy się powymądrzać.

Ostatnio edytowany przez debbie (2009-01-29 17:58:53)


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#8  2009-01-29 18:04:20

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: Pare plików z jednego - według kryteriów

Ja bym raczej użył awka. A dokładniej poszukał kogoś, kto awka zna lepiej ode mnie. :)


Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#9  2009-01-29 18:09:55

  lis6502 - Łowca lamerów

lis6502
Łowca lamerów
Skąd: Stalinogród
Zarejestrowany: 2008-12-04

Re: Pare plików z jednego - według kryteriów

Nie chodzi o kwestię wymądrzania się, po prostu nieprecyzyjnie formułujesz pytania w związku z czym nie do końca wiem z jakim poziomem zaawansowania mam do czynienia.
tutaj miałem problem mniejszego kalibru, ale zapoznanie się z nim zapewne rozjaśni Ci trochę sprawę. snah podał tam bardzo wartościowego linka.

Offline

 

#10  2009-01-29 18:16:24

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: Pare plików z jednego - według kryteriów

Noo awk to dobra sprawa! Tyle tylko że musiał bym się go uczyć w tej chwili od podstaw bo nieuzywałem go wcześniej.


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#11  2009-01-29 18:29:36

  lis6502 - Łowca lamerów

lis6502
Łowca lamerów
Skąd: Stalinogród
Zarejestrowany: 2008-12-04

Re: Pare plików z jednego - według kryteriów

Polecam, znajomość przydaje się częściej niż można przypuszczać :).

Offline

 

#12  2009-01-29 20:06:00

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Pare plików z jednego - według kryteriów

debbie napisał(-a):

Noo awk to dobra sprawa! Tyle tylko że musiał bym się go uczyć w tej chwili od podstaw bo nieuzywałem go wcześniej.

na prawde warto ...

a tutaj robimy np. (piasane z glowy wiec moze nie dzialac)

Kod:

grep -v '^[~^*]$' plik_wejsciowy | while read p t; do
  if [ $p == "numer" ]; then
    plik=$2
  fi
  echo "$p $t" > $plik
done

Ostatnio edytowany przez bercik (2009-01-29 20:07:07)


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#13  2009-01-30 12:35:33

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: Pare plików z jednego - według kryteriów

po wykonaniu tego sktyptu:

plik wykon.sh:

grep -v '^[~^*]$' plik.txt | while read p t; do
  if [ $p == "numer" ]; then
    plik=$2
  fi
  echo "$p $t" > $plik
done

na plik.txt w który zawarte są te dane

wyrzuca mi:

./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 3: [: ==: unary operator expected
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 3: [: ==: unary operator expected
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 3: [: ==: unary operator expected
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 3: [: ==: unary operator expected
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 3: [: ==: unary operator expected
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 3: [: ==: unary operator expected
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 3: [: ==: unary operator expected
./wykon.sh: line 6: $plik: ambiguous redirect
./wykon.sh: line 3: [: ==: unary operator expected
./wykon.sh: line 6: $plik: ambiguous redirect

Ostatnio edytowany przez debbie (2009-01-30 12:50:36)


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#14  2009-01-30 13:02:06

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Pare plików z jednego - według kryteriów

pisalem ze nietestowane i moga bycdrobmne bledy, ale mozna bylo sobie poprawic ...tam byly 3 drobne bledy i jeden bashyzm ...

Kod:

grep -v '^[~^]*$' plik.txt | while read p t; do
  if [ "$p" = "numer" ]; then
    plik=$t
  fi
  echo "$p $t" >> $plik
done

"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#15  2009-01-30 17:39:37

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: Pare plików z jednego - według kryteriów

aaaaaaaa Jesteśśś poprostuu genialnyy!! O to mi chodziło - dziękówka!


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#16  2009-01-30 18:53:08

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: Pare plików z jednego - według kryteriów

Teraz próbuje przerobić pliki wyjściowe na pdf, tzn

otrzymałem pliki z numerami np plik o nazwie - 1234

właściewie  napisałem wcześniej te dane testowo  bo dane każdej osoby są objęte kodami html czyli np:

~
numer 1234
<html>
<table border=1 width=100%>
<tr><td>Kowalski Jan</td></tr>
<tr><td>dfsjksdlf</td></tr>
<tr><td>ioerewoiruewior<td></tr>
<tr><td>rewrewrew itp itp</td></tr>
</table>

^

~
numer 5345
<html>
<table border=1 width=100%>
<tr><td>Nowak Alojzy</td></tr>
<tr><td>adasdasdfsjksdlf</td></tr>
<tr><td>ghfghioerewoiruewior</td></tr>
<tr><td>ghfgttrewrewrew itp itp</td></tr>
</table>

^

i jest ok - skrypt robi mi z jednego pliku więcej o nazwach numerów:)

Ale to nie koniec bo chodzi mi o przerobienie np danego pliku przykładowo 5345
na pdf ale tak żeby po otwarciu tego pdf'a pokazywał te dane z tabelami ( bez kodu html )

Wiem że jest możliwość użycia:
a2ps --output 5345.ps 5345
- czyli przerobi mi go na postscripta a następnie :
ps2pdf12 5345.ps 5345.pdf
czyli mam pdf'a z postscripta ale dość że pokazuje mi kod html'a to wykrzacza polskie znaki.

Jest możliwość wogóle zrobienia czegoś takiego??? Ma ktoś jakiś pomysł??

W sumie to można go wrzucić do doc'a za pomocą komendy php np:

php 5345 > 5345.doc
i doc mi wyswietla z tabelami a nie kod html'a
może prościej by było wtedy przekonwertować z doc'a do pdf???
Ale właśnie chodzi mi tylko o bash czyli bez ręcznych opcji eksportu z doc do pdf jakie ma np open office.

Ostatnio edytowany przez debbie (2009-01-30 19:19:37)


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#17  2009-01-31 03:10:32

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Pare plików z jednego - według kryteriów

ja bym to robil tak:
1. przerabiamy sedem na latex
2. potem dajemy pdflatex i gotowe ...


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#18  2009-02-02 10:43:40

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: Pare plików z jednego - według kryteriów

dało by radę trochę jaśniej?? - za pomocą sed'a konwersja z html na latex:

czyli utworzyłem sobie html2latex.sed który zawierał kod:

#
# goal: to convert as much of an html document as possible to an
# equivalent sed script.
# i understand that, because of this approach, this can never be 100%
# accurate, but really what I'm after is the conversion of things

# like tables and lists.
# note that my html tags are pretty accurate here, but my latex tags
# leave some things to be desired.
#
s?&gt;?>?g
s?&lt;?<?g
s?&nbsp;? ?g

s?<html>??ig
s?</html>??ig

s?<head>??ig
s?</head>??ig

s?<title>\([^<]*\)</title>?\\section*{\1}?ig

s?<body>?\\begin{document}?ig
s?</body>?\\end{document}?ig

# i don't know what the latex tag should be here for a paragraph.
s?<p>\([^<]*\)</p>?{\1}?ig

s?<center>??ig
s?</center>??ig

#-------#
# TABLE #
#-------#
s?<table.*>?\\begin{tabular}{}{}?ig
s?<\/table.*>?\\end{tabular}{}{}?ig

#-----------#
# TABLE ROW #
#-----------#
# nothing at the beginning of a table row
s?<tr>??ig
# two backslashes at the end of a table row
s?</tr>?\\\\?ig

#--------------#
# TABLE COLUMN #
#--------------#
s?<td.*>?\&?ig

#-------#
# FONTS #
#-------#
s?<b>\([^<]*\)</b>?\\textbf{{\1}}?ig
s?<em>\([^<]*\)</em>?\\textit{{\1}}?ig
s?<font .*>??ig
s?</font>??ig
s?<br>?////?g

#--------#
# BUTTON #
#--------#
# guessing on button syntax here
s?<input
type="button".*value="\([^<]*\)">?\\begin{fbox}\1\\end{fbox}?ig

# need to do something here to handle multiline mode
s?<select.*<option.*selected>\([^<]*\)</option>?\\begin{fbox}{\1}\\end{fbox}?g

# delete all other option tags
#?<option.*</option>?d

# handle preformatted things
s?<pre>?\\begin{verbatim}?ig
s?</pre>?\\end{verbatim}?ig

s?<code>?\\begin{verbatim}?ig
s?</code>?\\end{verbatim}?ig

# handle bulleted lists.
# todo: fix "itemize" vs. "enumerate"
s?<ol.*>?//begin{enumerate}?ig
s?</ol.*>?//end{enumerate}?ig
s?<ul.*>?//begin{enumerate}?ig
s?</ul.*>?//end{enumerate}?ig
s?<li>\([^<]*\)</li>?\\item {\1}?g
s?<li>\([^<]*\).*$?\\item {\1}?g
s?</li>??g

s?<!--\([^<]*\)-->?\\begin{comment}{\1}\\end{comment}?ig

Nastepnie wykonałem:

sed -f html2latex.sed 5345.html > 5345.tex

No i jest ok bo przerobił mi go.

Tylko jak teraz dodajemy pdflatex??? w jaki sposób ??

Ostatnio edytowany przez debbie (2009-02-02 11:32:37)


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#19  2009-02-02 13:03:01

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: Pare plików z jednego - według kryteriów

Może mi ktoś powiedzieć jak zainstalować Latex'a czy pdflatex??? Bo googluje chyba z 3 godziny i nie znalacłem nic konkretnego,
jak wpisuje:

apt-get install texlive texlive-doc-pl texlive-lang-polish     
to dostaje :

Reading package lists... Done
Building dependency tree... Done
You might want to run `apt-get -f install' to correct these:
The following packages have unmet dependencies:
  latex-beamer: Depends: pgf (>= 1.00-1) but it is not going to be installed
                Depends: latex-xcolor (>= 2.00-1) but it is not going to be installed
                Depends: texlive-latex-base but it is not going to be installed or
                         tetex-extra but it is not going to be installed
  texlive: Depends: texlive-fonts-recommended (>= 2007-11) but it is not going to be installed
           Depends: texlive-latex-recommended (>= 2007-11) but it is not going to be installed
           Depends: texlive-latex-base (>= 2007-11) but it is not going to be installed
  texlive-doc-pl: Depends: tex-common (>= 1.11) but it is not going to be installed
                  Depends: texlive-doc-base (>= 2007) but it is not going to be installed
                  Depends: texlive-common (>= 2007) but it is not going to be installed
  texlive-lang-polish: Depends: tex-common (>= 1.11) but it is not going to be installed
                       Depends: texlive-base (>= 2007-11) but it is not going to be installed
                       Depends: texlive-common (>= 2007) but it is not going to be installed
                       Depends: texlive-latex-base (>= 2007-11) but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

także akcja słaba się robi! Był bym wdzięczny za pomoc bo mam właściwie końcówkę całości tylko zostało mi dodawanie pdflatex - według rady
bercik'a.


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#20  2009-02-02 13:06:45

  thalcave - prawie jak admin

thalcave
prawie jak admin
Skąd: odległa galaktyka
Zarejestrowany: 2007-05-17

Re: Pare plików z jednego - według kryteriów

You might want to run `apt-get -f install' to correct these:

wykonałeś to?
to nie problem z Lateksem tylko z aptem :P


linux register user: 484281
"It's great to be here. It's great to be anywhere"
Keith Richards

Offline

 

#21  2009-02-02 14:59:46

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: Pare plików z jednego - według kryteriów

no tak po wrzuceniu: apt-get -f install dostałem:

(Reading database ... 101786 files and directories currently installed.)
Unpacking libcups2 (from .../libcups2_1.3.8-1lenny4.1_i386.deb) ...
dpkg: error processing /var/cache/apt/archives/libcups2_1.3.8-1lenny4.1_i386.deb (--unpack):
trying to overwrite `/usr/lib/libcups.so.2', which is also in package libcupsys2-gnutls10
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Unpacking cups-common (from .../cups-common_1.3.8-1lenny4.1_all.deb) ...
dpkg: error processing /var/cache/apt/archives/cups-common_1.3.8-1lenny4.1_all.deb (--unpack):
trying to overwrite `/usr/share/cups/charsets/utf-8', which is also in package cupsys
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/libcups2_1.3.8-1lenny4.1_i386.deb
/var/cache/apt/archives/cups-common_1.3.8-1lenny4.1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)


pomogłoo:
dpkg --force-overwrite -i  /var/cache/apt/archives/cups-common_1.3.8-1lenny4.1_all.deb

teraz poszło z tym że dalej niebardzo wiem jak zrobić z tex pdfa???
bo jak mu dam pdflatex 5345.tex to chwile mysli później rzuca błędami itd.

Ostatnio edytowany przez debbie (2009-02-02 15:45:12)


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#22  2009-02-02 21:18:37

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Pare plików z jednego - według kryteriów

bo taki plik latexowy musi miec naglowek i stopke ... zobacz np. http://www.opcode.eu.org/latex/


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)