Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: 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?
-
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ä.
-
Sen saisi ehkä copy/paste menetelmällä.
Niin, mutta ei mulla ole aikaa koko päivää satoja rivejä alkaa copy/pastettamaan :D
-
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ää.
-
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
-
awk:lla pitäisi ainakin mennä, voihan tuohon toki yksinkertaisempiakin loitsuja olla.
cat temp.txt | awk '{print $2 " " $1}' > newtemp.txt
-
awk:lla pitäisi ainakin mennä, voihan tuohon toki yksinkertaisempiakin loitsuja olla.
cat temp.txt | awk '{print $2 " " $1}' > newtemp.txt
Kiitos muuten hyvä, mutta tekee rivinvaihdon tekstien välille
näin
iso-omena.iso
hasjdfh234h5kj2h3hk3h5
-
awk:lla pitäisi ainakin mennä, voihan tuohon toki yksinkertaisempiakin loitsuja olla.
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.
-
Kokeilepa
cat temp.txt | awk '{printf $2 " " $1 "\n"}' > newtemp.txt
eli 'printf' 'print'in sijaan ja newline loppuun
-
Tai ihan vain yksinkertaisesti
awk '{print $2,$1}' tiedosto > uusitiedosto
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
-
Tai ihan vain yksinkertaisesti
awk '{print $2,$1}' tiedosto > uusitiedosto
Huomattavasti luettavampaa awkin käyttöä :)
-
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
-
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 :)
-
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)