Sätta in text frammför varje rad i textfil
Sätta in text frammför varje rad i textfil
Jag har en lång textfil där jag skulle vilja sätta in en textbit före all ext på varje rad. Gärna innifrån Vim. Men det spelar egentligen ingen roll bara det går...
Home sweet ~/ = http://sandnabba.se
-
- Inlägg: 6191
- Blev medlem: 14 jan 2007, 19:31
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Stockholm
SV: Sätta in text frammför varje rad i textfil
Vim vet jag inte, men awk:
Och nu vill jag se minst 5 alternativa lösningar 
Kod: Markera allt
awk '{print "text att lägga till", $0}' filnamn

- mcNisse
- Inlägg: 5211
- Blev medlem: 06 feb 2007, 20:51
- OS: Debian
- Utgåva: Vet inte/ingen utgåva passar
SV: Sätta in text frammför varje rad i textfil
1,100:s/^/extraText/
stoppar in extraText på rad 1 till 100.
stoppar in extraText på rad 1 till 100.
KDE 4.5 SC är ute i det fria!!! Tjoho
Stagnation is good for nobody - after all if you don't progress you end up with gnome
Stagnation is good for nobody - after all if you don't progress you end up with gnome
- mcNisse
- Inlägg: 5211
- Blev medlem: 06 feb 2007, 20:51
- OS: Debian
- Utgåva: Vet inte/ingen utgåva passar
SV: Sätta in text frammför varje rad i textfil
Kod: Markera allt
sed s/^/extraText/ filnam > nyFil
KDE 4.5 SC är ute i det fria!!! Tjoho
Stagnation is good for nobody - after all if you don't progress you end up with gnome
Stagnation is good for nobody - after all if you don't progress you end up with gnome
SV: Sätta in text frammför varje rad i textfil
Ah, tänkte inte på att man kan köra "sed" i Vim...
Och "s/^" var väl ganska självklar.
Tack iallafall!
Och Lars, ahhh! Har några riktigt bra guider för AWK, men att läsa och göra än en annan sak.
Och "s/^" var väl ganska självklar.

Tack iallafall!
Och Lars, ahhh! Har några riktigt bra guider för AWK, men att läsa och göra än en annan sak.

Home sweet ~/ = http://sandnabba.se
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
SV: Sätta in text frammför varje rad i textfil
Det är nog snarare så att du "kör" ed både i vim och sed.Emil.s skrev: Ah, tänkte inte på att man kan köra "sed" i Vim...
vim: vi improved
vi: visual ex
ex: extended
sed: stream ed
Om man ska vara riktigt petig så hämtade ed "s/regexp/string/"-syntaxen från
QED som var först med att använda regexp.
Se manualbadet sidan 13: http://cm.bell-labs.com/cm/cs/who/dmr/qeddoc.html
Det är värt att lägga märke till är vilka som står som author för manualbladet....
D. M. Ritchie och K. L. Thompson, samma personer som ligger bakom unix och
C-prorgammering.
- per9000
- Inlägg: 931
- Blev medlem: 07 maj 2007, 11:06
- OS: Ubuntu
- Utgåva: 23.04 Lunar Lobster
- Ort: Västerås
- Kontakt:
SV: Sätta in text frammför varje rad i textfil
en av många varianter i python, min variant kräver 7 rader kod och tre argument i kommandoraden (inil, utfil, prefix)
/Per
Kod: Markera allt
from sys import argv
f = open(argv[1],'r')
o = open(argv[2],'w')
for line in f:
o.write("%s%s" % (argv[3], line))
f.close()
o.close()
Kod: Markera allt
$ cat tmp-ls
keyring-nIyIj6
ssh-eKmRDy6062
tms-ls
$ python prefix.py tmp-ls tmp-ls-prefix "foobar is the shit"
$ cat tmp-ls-prefix
foobar is the shitkeyring-nIyIj6
foobar is the shitssh-eKmRDy6062
foobar is the shittms-ls
- mcNisse
- Inlägg: 5211
- Blev medlem: 06 feb 2007, 20:51
- OS: Debian
- Utgåva: Vet inte/ingen utgåva passar
SV: Sätta in text frammför varje rad i textfil
En perl variant någon? Så att vi kommer upp i 5 varianter... 

KDE 4.5 SC är ute i det fria!!! Tjoho
Stagnation is good for nobody - after all if you don't progress you end up with gnome
Stagnation is good for nobody - after all if you don't progress you end up with gnome
SV: Sätta in text frammför varje rad i textfil
Ojdå! Nog för att jag tänkte att detta var någon som hängt med från urtiden, men detta hade jag inte räknat med. Tackar för "historia lektionen"!Konservburk skrev:Det är nog snarare så att du "kör" ed både i vim och sed.Emil.s skrev: Ah, tänkte inte på att man kan köra "sed" i Vim...
vim: vi improved
vi: visual ex
ex: extended
sed: stream ed
Om man ska vara riktigt petig så hämtade ed "s/regexp/string/"-syntaxen från
QED som var först med att använda regexp.
Se manualbadet sidan 13: http://cm.bell-labs.com/cm/cs/who/dmr/qeddoc.html
Det är värt att lägga märke till är vilka som står som author för manualbladet....
D. M. Ritchie och K. L. Thompson, samma personer som ligger bakom unix och
C-prorgammering.

Home sweet ~/ = http://sandnabba.se
- mcNisse
- Inlägg: 5211
- Blev medlem: 06 feb 2007, 20:51
- OS: Debian
- Utgåva: Vet inte/ingen utgåva passar
SV: Sätta in text frammför varje rad i textfil
Jag orkar inte vänta på en perl variant så jag gjorde en själv... (Lars du ska inte uppmana till sådan här dumheter
. Jag gillar det...)
script.pl
Användning:


script.pl
Kod: Markera allt
while (<STDIN>) {
print $ARGV[0], $_;
}
Kod: Markera allt
perl script.pl "extraText" < fil > nyfil
KDE 4.5 SC är ute i det fria!!! Tjoho
Stagnation is good for nobody - after all if you don't progress you end up with gnome
Stagnation is good for nobody - after all if you don't progress you end up with gnome
-
- Inlägg: 6191
- Blev medlem: 14 jan 2007, 19:31
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Stockholm
SV: Sätta in text frammför varje rad i textfil
En Emacs-lösning måste vi ha också: ctrl+alt+% ^ enter extratext enter !
- mcNisse
- Inlägg: 5211
- Blev medlem: 06 feb 2007, 20:51
- OS: Debian
- Utgåva: Vet inte/ingen utgåva passar
SV: Sätta in text frammför varje rad i textfil
Emacs lösning.
Ställ dig på första raden.
edit: En annan lösning (lite enklare)
Ställ dig på första raden.
Kod: Markera allt
C-x (
C-a
extraText
C-n
C-x )
C-u "antal rader i filen - 1" C-x e
Kod: Markera allt
M-C-%
^
extraText
!
Senast redigerad av 1 mcNisse, redigerad totalt 19 gånger.
KDE 4.5 SC är ute i det fria!!! Tjoho
Stagnation is good for nobody - after all if you don't progress you end up with gnome
Stagnation is good for nobody - after all if you don't progress you end up with gnome
- DeepThought
- Inlägg: 2769
- Blev medlem: 19 dec 2006, 11:07
- OS: Arch Linux
- Ort: Göteborg
SV: Sätta in text frammför varje rad i textfil
För oss som fortfarande sitter som UFOn och undrar: finns det någon nybörjarguide för sed, awk och regexp? Alltså inte manualblad, utan gärna väldigt förklarande text och små övningar att göra? 

WE WILL ALWAYS BE SO MUCH MORE HUMAN THAN WE WISH TO BE...
- per9000
- Inlägg: 931
- Blev medlem: 07 maj 2007, 11:06
- OS: Ubuntu
- Utgåva: 23.04 Lunar Lobster
- Ort: Västerås
- Kontakt:
SV: Sätta in text frammför varje rad i textfil
Ja det skulle inte vara dumt - jag försökte lära mig sed med trial-and-error... Lite som att dricka te med ätpinnarDeepThought skrev: För oss som fortfarande sitter som UFOn och undrar: finns det någon nybörjarguide för sed, awk och regexp? Alltså inte manualblad, utan gärna väldigt förklarande text och små övningar att göra?![]()

/Per
SV: Sätta in text frammför varje rad i textfil
Jo, det är väl inte så där självinstruerande. 
Själv har jag kikat lite i Unix Text processing:
http://www.oreilly.com/openbook/utp/
Tar upp AWK, Sed och en massa annat.

Själv har jag kikat lite i Unix Text processing:
http://www.oreilly.com/openbook/utp/
Tar upp AWK, Sed och en massa annat.

Home sweet ~/ = http://sandnabba.se