Mit sed suchen und das gefundene bei der ausgabe wiederverwenden.

OP Persönliche Seite #2098097
Hallo zusammen,


ich möchte mit sed eine Liste mit Nummer durchsuchen,
und vor alle Nummern, die mit 473 beginnen und noch 2 weiter Zeichen 
haben,
ein --- schreiben.
Des weiteren soll hinter den Treffern ein ... erscheinen.

Ich habe es mit
1
sed 's/473../---.....\.\.\./g'
und ähnlichen versucht aber alles falsch.

Für eine Lösung wäre ich Dankbar,
   Mr. Pi
Gast #2098130
sabine@phenom-ubuntu:~$ cat file1.txt
12345
473xxxx
47312
473ab
8765432

sabine@phenom-ubuntu:~$ awk '{ if ( $0 ~ /^473..$/ ) { print "---" $0 
"..." ; } else { print ; } }' file1.txt
12345
473xxxx
---47312...
---473ab...
8765432

sabine@phenom-ubuntu:~$ awk '{ if ( $0 ~ /^473..$/ ) { print "---" $0 
"..." ; } else { print ; } }' file1.txt > new_file.txt



Ist es das, was Du willst?
Gast #2098388
Kann man auch mit der bash machen. Ungefähr so:

modify ()
{
  while read line
  do
    if [[ "$line" ==  "*473??" ]]; then
      line="---"${line#473??}
    fi
    echo $line
  done < "myfile"
}
Gast #2098716
@ Spade, Sam :

Ich habe es ausprobiert: Dein Script funktioniert nicht. Also wirklich 
nur "ungefähr so".

@ all :
Es würde mich aber interessieren, ob man es in der Art in der bash 
hinbekommt. Könnte das Problem ein bach-Erfahrener mal lösen?
OP Persönliche Seite #2098760
Danke,

für die Antworten, nur brauche ich leider eine bash Lösung die immer 
geht,
read schmiert leider das ein oder andere mal ab, warum weis keiner.

Also trotzdem Danke, vor allen dir Sabine, deine Lösung tut und falls 
sich keine andere findet, muss ich halt darum betteln, das 'awk' in 
meine shell mit aufgenommen wird :-( .

Vielleicht findet Ja noch irgend ein Bastler die Lösung.


Mit freundlichen Grüßen,
   Mr. Pi
#2098807
1
$ cat f1.txt 
2
12345
3
473xxxx
4
47312
5
473ab
6
8765432
7
147300
8

9
$ cat f1.txt | sed -r -e's/^(473..)$/---\1.../g'
10
12345
11
473xxxx
12
---47312...
13
---473ab...
14
8765432
15
147300

Tut das, was du willst?

Grüße


EDIT: Mist, zu langsam ;)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.