Kirjoittaja Aihe: Tekstin muokkausta [ratkaistu]  (Luettu 4297 kertaa)

moonstone

  • Vieras
Tekstin muokkausta [ratkaistu]
« : 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?
« Viimeksi muokattu: 14.07.08 - klo:14.26 kirjoittanut Aleksi Ikäheimo »

ubuntu-linux

  • Käyttäjä
  • Viestejä: 139
    • Profiili
Vs: Tekstin muokkausta
« Vastaus #1 : 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ä.
Tulikohan kirotusvirheitä...

moonstone

  • Vieras
Vs: Tekstin muokkausta
« Vastaus #2 : 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

ubuntu-linux

  • Käyttäjä
  • Viestejä: 139
    • Profiili
Vs: Tekstin muokkausta
« Vastaus #3 : 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ää.
Tulikohan kirotusvirheitä...

UbunTux

  • Käyttäjä
  • Viestejä: 2046
  • KubunTux
    • Profiili
Vs: Tekstin muokkausta
« Vastaus #4 : 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
KDE neon
Uudempaa KDE:tä Ubuntulla

kuutio

  • Vieras
Vs: Tekstin muokkausta
« Vastaus #5 : 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

moonstone

  • Vieras
Vs: Tekstin muokkausta
« Vastaus #6 : 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

kuutio

  • Vieras
Vs: Tekstin muokkausta
« Vastaus #7 : 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.

kuutio

  • Vieras
Vs: Tekstin muokkausta
« Vastaus #8 : 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

Masse

  • Käyttäjä
  • Viestejä: 38
    • Profiili
Vs: Tekstin muokkausta
« Vastaus #9 : 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

kuutio

  • Vieras
Vs: Tekstin muokkausta
« Vastaus #10 : 14.07.08 - klo:14.22 »
Tai ihan vain yksinkertaisesti
awk '{print $2,$1}' tiedosto > uusitiedosto
Huomattavasti luettavampaa awkin käyttöä :)

moonstone

  • Vieras
Vs: Tekstin muokkausta
« Vastaus #11 : 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

Masse

  • Käyttäjä
  • Viestejä: 38
    • Profiili
Vs: Tekstin muokkausta
« Vastaus #12 : 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 :)

Paznak

  • Käyttäjä
  • Viestejä: 71
    • Profiili
Vs: Tekstin muokkausta [ratkaistu]
« Vastaus #13 : 15.07.08 - klo:14.28 »
Unix Text Processing

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
« Viimeksi muokattu: 15.07.08 - klo:14.33 kirjoittanut Paznak »