Programm Kate: Ich brauche bitte Unterstützung zur Zeitersparnis für Suchen und Ersetzen (Tausende Zeilen)

Andi07

Banned
Registriert
Aug. 2013
Beiträge
681
Hallo zusammen!

Kann mir bitte jemand helfen in Kate in allen Zeilen etwas zu ersetzen?
Konkret möchte alles was mit "(beginnt) UND INNERHALB von"(ist/steht) ersetzen, mit wortwörtlich nichts.

Das Problem ist, es sind ca. 6660 Zeilen und es zieht sich gefühlt ewig hin, alles über | und der <----- Löschen-Taste zu löschen.
Geht das auch einfacher und falls ja, bitte wie?

Vielen Dank!


Gruß Andi
 
Zuletzt bearbeitet:
Kate was?
Der Texteditor? Was anderes? Hat es kein Suchen und Ersetzen in allen Dateien? dann einfach Visual Studio Code verwenden und glücklich werden.
 
meinst du "[^"]*" oder was
 
"Find/Replace" Screenshot unter "Effizientes Arbeiten an komplexen Projekten" https://kate-editor.org/de/

Ansonsten einen "einfacheren" Editor verwenden, NotePad kann "Suchen und Ersetzen" auch.
 
  • Gefällt mir
Reaktionen: User007
Hallo zusammen und herzlichen Dank!

Es geht um den Texteditor Kate und eine einzelne Datei mit eben ca. 6660 Zeilen.
Ein kleiner Ausschnitt von mehreren 1000 Zeilen:

libplacebo-devel" ="0" ver="4.192.1" rel="1.5"
libpkgconf3" ="0" ver="1.8.0" rel="1.9"
libpkcs11-helper1" ="0" ver="1.28.0" rel="1.2"
libpixman-1-0-devel" ="0" ver="0.40.0" rel="1.10"
libpixman-1-0-32bit" ="0" ver="0.40.0" rel="1.10"
libpixman-1-0" ="0" ver="0.40.0" rel="1.10"
libpipewire-0_3-0" ="0" ver="0.3.51" rel="1.2"
libpipeline1" ="0" ver="1.5.6" rel="1.2"
Der Inhalt zwischen "" ist also unterschiedlich und soll inklusive "" gelöscht oder eben durch absolut nichts ersetzt werden.


Gruß Andi
 
Du willst aus
Code:
ibplacebo-devel" ="0" ver="4.192.1" rel="1.5"
sowas machen?
Code:
ibplacebo-devel 0 4.192.1 1.5

Holzhammermethode ==> Tabellenkalkulation ==> Text in Spalten und trennen bei "
Die ungewollten Spalten löschen und als Text wieder exportieren mit Leerzeichen nach jeder Spalte.
In Excel in 10 Sekunden erledigt für diesen speziellen Fall.
 
  • Gefällt mir
Reaktionen: def_
Könntest du bitte mindestens ein Beispiel schreiben, was du genau möchtest? Bei einer Regel "alles zwischen einem Paar "" entfernen" würde strikt interpretiert sowas rauskommen:
libplacebo-devel""0""4.192.1""1.5"
 
Bash:
:~$ echo 'libplacebo-devel" ="0" ver="4.192.1" rel="1.5" ' | sed 's/\"//' | sed 's/\"[^ ]*\"//g'
libplacebo-devel = ver= rel=

Das sieht aber immer noch komisch aus, allein dadurch, dass da ein Gleichheitszeichen einfach so herumsteht.
 
Wenn's plaintext ist, kannst Du auch ganz bequem direkt auf der shell mit gsub, sed, etc. und regex arbeiten, es braucht kein grafisches Tool dafür.
 
Code:
libplacebo-devel" ="0" ver="4.192.1" rel="1.5"
Andi07 schrieb:
Der Inhalt zwischen "" ist also unterschiedlich und soll inklusive "" gelöscht oder eben durch absolut nichts ersetzt werden.
Ich würd' da als Zielwunsch eher
Code:
libplacebo-devel" = ver= rel=
bzw.
Code:
libplacebo-devel" ="" ver="" rel=""
heraus lesen.
Das erste Anführungszeichen scheint wohl eher noch zur ersten Variablenbezeichnung zu gehören.
Oder, @Andi07?
 
prian schrieb:
Du willst aus
Code:
ibplacebo-devel" ="0" ver="4.192.1" rel="1.5"
sowas machen?
Code:
ibplacebo-devel 0 4.192.1 1.5

Holzhammermethode ==> Tabellenkalkulation ==> Text in Spalten und trennen bei "
Die ungewollten Spalten löschen und als Text wieder exportieren mit Leerzeichen nach jeder Spalte.
In Excel in 10 Sekunden erledigt für diesen speziellen Fall.

Wenn das das gewünschte Ergebnis ist, ist folgendes im Terminal vielleicht einfacher (falls du auf Linux unterwegs bis):

Bash:
$ cat <file> | awk -F '"' '{print $1 " " $3 " " $5 " " $7}' >> <file2>
 
An jeden einzelnen DANKE!

Um es abzukürzen, aus hier Zeile 46

libpkcs11-helper1" ="0" ver="1.28.0" rel="1.2"
soll
libpkcs11-helper1
werden.
Und aus hier Zeile 47
libpixman-1-0-devel" ="0" ver="0.40.0" rel="1.10"
soll
libpixman-1-0-devel
werden.

Nach demselben Prinzip eben für weitere ca. 6660 Zeilen.

Und es muss natürlich nicht kate sein. Auf sed bin ich auch schon gestoßen, bin aber dafür
Ergänzung ()

Hallo zusammen!

@Sandorkan Danke, das funktioniert leider nicht wie gewünscht!

Wenn ich
cat user-packages.xml | awk -F '"' '{print $1 " " $3 " " $5 " " $7}' >> user.xml
ausführe, steht in so gut wie in jeder Zeile nur
<entry kind= name= epoch= ver=
Screenshot_20220519_191335.png


Gruß Andi
 
Zuletzt bearbeitet:
Hi,
sollte es nicht ein einfaches cut -d'"' -f1 reichen? Das "-Zeichen ist eingerahmt von dem '-Zeichen, ich hoffe es ist verständlich...
Hab grad keine Linux Kiste zum Testen...

Grüße
 
Zuletzt bearbeitet:
Andi07 schrieb:
An jeden einzelnen DANKE!

Um es abzukürzen, aus hier Zeile 46


soll

werden.
Und aus hier Zeile 47

soll

werden.

Nach demselben Prinzip eben für weitere ca. 6660 Zeilen.

Und es muss natürlich nicht kate sein. Auf sed bin ich auch schon gestoßen, bin aber dafür
Ergänzung ()

Hallo zusammen!

@Sandorkan Danke, das funktioniert leider nicht wie gewünscht!

Wenn ich

ausführe, steht in so gut wie in jeder Zeile nur

Anhang anzeigen 1219908

Gruß Andi

Okay, ich bin davon ausgegangen das die Datei die Einträge einfach nur ohne XML untereinander stehen hat.

Du kannst einfach mal mit den Ziffern hinter dem "$" spielen, $1 ist der Eintrag vor dem ersten Anführungszeichen, $2 der zweite und so weiter; alternativ natürlich ein Tool zum manipulieren von XML nutzen ;)
 
Verzeiht mir bitte https://stackoverflow.com/questions/27615023/remove-an-attribute-with-xmlstarlet und so weiter, das ist alles "chinesisch" für mich.

Vielleicht gibt es einen anderen Weg. (opensuse)

Durch eine Überprüfung eines Programmes (hplip) fehlen angeblich bestimmte Pakete. Das stimmt nicht.
user-packages.xml kann ich in YaST Software importieren.
Ich möchte aber bitte die Konsole/Terminal benutzen, um "zypper source-install ....." verwenden zu können.

Vereinzelt habe ich das schon gemacht. Und die Abhängigkeiten waren relativ lang.
"zypper source-install ....." soll für jedes bereits installierte Paket angewendet werden.
Zwanghafte Abhängigkeitsüberprüfung und erneutes Installieren.

Danke!


Gruß Andi
 
Zurück
Oben