Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: moonstone - 14.07.08 - klo:12.48

Otsikko: Tekstin muokkausta [ratkaistu]
Kirjoitti: moonstone - 14.07.08 - klo:12.48
Hei,

Mitenkä saisi vaivattomasti siirrettyä tekstien paikkaa rivi kerrallaan seuraavanlaisesti.

tiedoston temp.txt rivit näyttää tältä

iso-omena.iso 1dfa98f0ddb8b1e8d961c96ae63acc1d
iso-paaryna.iso 1dfa98f0ddb8b1e8d961c96ae63sd34
iso-appelsiini.iso 1dfa98f0ddb8b1e8d961c96234123a

ja rivit pitäisi muuttaa näin

1dfa98f0ddb8b1e8d961c96ae63acc1d iso-omena.iso
1dfa98f0ddb8b1e8d961c96ae63sd34 iso-paaryna.iso
1dfa98f0ddb8b1e8d961c96234123a iso-appelsiini.iso

Kaipa se sed komennolla onnistuu, mutta miten?
Otsikko: Vs: Tekstin muokkausta
Kirjoitti: ubuntu-linux - 14.07.08 - klo:12.58
Mitenkä saisi vaivattomasti siirrettyä tekstien paikkaa rivi kerrallaan seuraavanlaisesti.

tiedoston temp.txt rivit näyttää tältä

iso-omena.iso 1dfa98f0ddb8b1e8d961c96ae63acc1d
iso-paaryna.iso 1dfa98f0ddb8b1e8d961c96ae63sd34
iso-appelsiini.iso 1dfa98f0ddb8b1e8d961c96234123a

ja rivit pitäisi muuttaa näin

1dfa98f0ddb8b1e8d961c96ae63acc1d iso-omena.iso
1dfa98f0ddb8b1e8d961c96ae63sd34 iso-paaryna.iso
1dfa98f0ddb8b1e8d961c96234123a iso-appelsiini.iso

Kaipa se sed komennolla onnistuu, mutta miten?

Sen saisi ehkä copy/paste menetelmällä.
Otsikko: Vs: Tekstin muokkausta
Kirjoitti: moonstone - 14.07.08 - klo:13.01
Sen saisi ehkä copy/paste menetelmällä.

Niin, mutta ei mulla ole aikaa koko päivää satoja rivejä alkaa copy/pastettamaan :D
Otsikko: Vs: Tekstin muokkausta
Kirjoitti: ubuntu-linux - 14.07.08 - klo:13.11
Sen saisi ehkä copy/paste menetelmällä.

Niin, mutta ei mulla ole aikaa koko päivää satoja rivejä alkaa copy/pastettamaan :D
No sitten mää en tiiä mitään konstia. Ehkä joku muu tietää.
Otsikko: Vs: Tekstin muokkausta
Kirjoitti: UbunTux - 14.07.08 - klo:13.45
Tjaa näyttäisi mukavasti olevan välilyönti mukana. wc -l saat rivit. sedillä pystyy käymään rivi kerrallaan läpi käyttäen for-silmukkaa. Osat saisi napsittua erilleen cutilla jne. Jotain itua? No tietysti jossain luuraa työkalu jolla saa tuon tehtyä heti  ;D
Otsikko: Vs: Tekstin muokkausta
Kirjoitti: kuutio - 14.07.08 - klo:13.45
awk:lla pitäisi ainakin mennä, voihan tuohon toki yksinkertaisempiakin loitsuja olla.

Lainaus
cat temp.txt | awk '{print $2 " " $1}' > newtemp.txt
Otsikko: Vs: Tekstin muokkausta
Kirjoitti: moonstone - 14.07.08 - klo:13.52
awk:lla pitäisi ainakin mennä, voihan tuohon toki yksinkertaisempiakin loitsuja olla.

Lainaus
cat temp.txt | awk '{print $2 " " $1}' > newtemp.txt

Kiitos muuten hyvä, mutta tekee rivinvaihdon tekstien välille

näin
iso-omena.iso
hasjdfh234h5kj2h3hk3h5
Otsikko: Vs: Tekstin muokkausta
Kirjoitti: kuutio - 14.07.08 - klo:14.00
awk:lla pitäisi ainakin mennä, voihan tuohon toki yksinkertaisempiakin loitsuja olla.

Lainaus
cat temp.txt | awk '{print $2 " " $1}' > newtemp.txt

Kiitos muuten hyvä, mutta tekee rivinvaihdon tekstien välille

näin
iso-omena.iso
hasjdfh234h5kj2h3hk3h5
Pahus, kyllä tuo täällä päässä toimii. Koitetaan katsella missä kohdin tökkii.
Otsikko: Vs: Tekstin muokkausta
Kirjoitti: kuutio - 14.07.08 - klo:14.08
Kokeilepa
Lainaus
cat temp.txt | awk '{printf $2 " " $1 "\n"}' > newtemp.txt

eli 'printf' 'print'in sijaan ja newline loppuun
Otsikko: Vs: Tekstin muokkausta
Kirjoitti: Masse - 14.07.08 - klo:14.12
Tai ihan vain yksinkertaisesti
awk '{print $2,$1}' tiedosto > uusitiedosto

Lainaus
masse@satchii:~$ cat foo2
iso-omena.iso 1dfa98f0ddb8b1e8d961c96ae63acc1d
iso-paaryna.iso 1dfa98f0ddb8b1e8d961c96ae63sd34
iso-appelsiini.iso 1dfa98f0ddb8b1e8d961c96234123a
masse@satchii:~$ awk '{print $2,$1}' foo2 > newtemp
masse@satchii:~$ cat newtemp
1dfa98f0ddb8b1e8d961c96ae63acc1d iso-omena.iso
1dfa98f0ddb8b1e8d961c96ae63sd34 iso-paaryna.iso
1dfa98f0ddb8b1e8d961c96234123a iso-appelsiini.iso
Otsikko: Vs: Tekstin muokkausta
Kirjoitti: kuutio - 14.07.08 - klo:14.22
Tai ihan vain yksinkertaisesti
awk '{print $2,$1}' tiedosto > uusitiedosto
Huomattavasti luettavampaa awkin käyttöä :)
Otsikko: Vs: Tekstin muokkausta
Kirjoitti: moonstone - 14.07.08 - klo:14.26
Kiitos, toimii!

Tiedosto oli myös ascii text with CR line terminators (winkkari tekee tällästä!!)

sain sen muutettua normaaliksi ascii tekstiksi komennolla tr -d '\r' < md5sums > uusi
Otsikko: Vs: Tekstin muokkausta
Kirjoitti: Masse - 14.07.08 - klo:14.30
Kiitos, toimii!

Tiedosto oli myös ascii text with CR line terminators (winkkari tekee tällästä!!)

sain sen muutettua normaaliksi ascii tekstiksi komennolla tr -d '\r' < md5sums > uusi

On myös olemassa ohjelma tofrodos joka antaa komennon todos ja fromdos. todos laittaa dos-muotoon, ja fromdos pois siitä. Huomattavasti helpompaa :)
Otsikko: Vs: Tekstin muokkausta [ratkaistu]
Kirjoitti: Paznak - 15.07.08 - klo:14.28
Unix Text Processing (http://oreilly.com/openbook/utp/)

vanhempi kuin linux mutta toimii silti ja tuo awk:n käyttö kannattaa opetella (kuten myös komentorivin eri käskyt) -> elämää helpottavat kummasti

Näin niinkuin kommenttina

edit

lisää sed ja awk käyttöä http://www.unix.com.ua/orelly/unix/sedawk/index.htm (http://www.unix.com.ua/orelly/unix/sedawk/index.htm)