Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Wert aus eine bestimmte Zeile in eine andere Spalte ändern unter Linux Bash

Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO

OIOOIOOIOIIOOOIIOIIOIOOO (Level 1) - Jetzt verbinden

20.02.2020 um 14:44 Uhr, 436 Aufrufe, 15 Kommentare, 3 Danke

Guten Tag,

ich sitze gerade wiedermal vor einem Problem und muss unter Zeitdruck ein diesen lösen.

Ich muss mit eine Zeile mit Bash, und dass sollte ja möglich sein in eine Datei welche Werte mit Leerzeichen getrennt sind nach eine bestimmte Zeile aus dem Wert der zweiten Spalte suchen und den Wert in der achten Spalte ändern.

Mit der nachfolgenden Zeile, kann ich den aktuellen Wert ausgeben, wie ich diesen jetzt jedoch ändern kann, bleibt mir leider noch offen.

Vielen Dank für Eure Hilfe.

OIOOIOOIOIIOOOIIOIIOIOOO
Mitglied: Lochkartenstanzer
20.02.2020 um 14:47 Uhr
Moin,

Hast Du denn auch ein paar Beispielzeilien mit "vorher/nachher"?

schau Dir mal awk und sed an.

lks
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
20.02.2020 um 14:53 Uhr
Guten Tag Lochkartenstanzer,

ja bei awk und sed bin ich stecken geblieben, aber ich komme da kein Meter voran, kann scheinbar überhaupt nicht mehr unter Zeitdruck arbeiten...

In Prinzip soll es wie eine normale Datenbank abfrage funktionieren, als würde man eine E-Mail Adresse bei zum Beispiel eBay ändern wollen.

Also:

vorher:
Jetzt soll aus der Spalte 2 der Wert 32123124 gesucht werden und davon die Spalte 8 von 200000 auf 3AD2 geändert werden.

Vielen Dank

OIOOIOOIOIIOOOIIOIIOIOOO
Bitte warten ..
Mitglied: 143127
20.02.2020, aktualisiert um 15:04 Uhr
Auf die schnelle nen awk Einzeiler
sed geht natürlich auch, aber mit Regex wollte ich dich jetzt in deinem Zustand nicht auch noch überfordern .
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
20.02.2020 um 15:37 Uhr
Guten Tag 143127,

vielen Dank für deine schnelle Hilfe.

Jetzt hast du mich neugierig gemacht.

https://www.tutorialspoint.com/unix/unix-regular-expressions.htm

In ruhige Minute werde ich mich mal belesen.

Jetzt muss ich nur noch einen logischen Fehler in meine Kette suchen und beseitigen.

Viele Grüße

OIOOIOOIOIIOOOIIOIIOIOOO
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
20.02.2020, aktualisiert um 16:17 Uhr
Verzeihung 143127,

ich noch einmal.

Die zuvor von dir eingegebene Variante war für die Konsole zum testen ok. Aber, was mache ich wenn die 3AD2 aus eine Variable kommt?

Gibt es denn nicht eine Möglichkeit mit AKW in die gleiche Datei zu schreiben?

Derzeit sehe ich es nur mit 'mv' zu lösen.

Viele Grüße

OIOOIOOIOIIOOOIIOIIOIOOO
Bitte warten ..
Mitglied: 143127
LÖSUNG 20.02.2020, aktualisiert um 17:02 Uhr
Man müsste sich nur mal die Kommandozeilenoptionen ansehen ...

Gibt es denn nicht eine Möglichkeit mit AKW in die gleiche Datei zu schreiben?
Ja, auch das ist nur einen Katzensprung
https://www.gnu.org/software/gawk/manual/html_node/Extension-Sample-Inpl ...
https://stackoverflow.com/questions/16529716/save-modifications-in-place ...

Also zusammengefasst dann so
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
20.02.2020, aktualisiert um 17:08 Uhr
Vielen Dank 143127!

Da hätte ich mit "try and error" Methode das nie geschafft.

awk versteht leider kein -i somit musste ich das gawk installieren.

Viele Grüße

OIOOIOOIOIIOOOIIOIIOIOOO
Bitte warten ..
Mitglied: 143127
20.02.2020, aktualisiert um 17:27 Uhr
Zitat von OIOOIOOIOIIOOOIIOIIOIOOO:
awk versteht leider kein -i somit musste ich das gawk installieren.
Doch tut es, aber nur das aktuelle seit Version GNU Awk 4.1.0 siehe Hinweis im Link.
https://groups.google.com/forum/#!topic/comp.lang.awk/QM51VPAlw4I
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
20.02.2020 um 18:06 Uhr
Zitat von 143127:
Doch tut es, aber nur das aktuelle seit Version GNU Awk 4.1.0 siehe Hinweis im Link.
https://groups.google.com/forum/#!topic/comp.lang.awk/QM51VPAlw4I
Also ich hab hier GNU Awk 4.2.1, API: 2.0 (GNU MPFR 4.0.2, GNU MP 6.1.2)
Und es hat mir das ausgegeben: awk: not an option: -i
Bitte warten ..
Mitglied: 143127
20.02.2020, aktualisiert um 18:14 Uhr
Dann hast du wohl eine ohne das Feature kompilierte Variante, bzw. die Libray dafür fehlt auf deinem System. Die Standardvarianten diverser Distros beinhalten das Feature jedenfalls. Liegt wohl daran das deine verwendete Distro die Library nicht beinhaltet.
Bitte warten ..
Mitglied: Lochkartenstanzer
20.02.2020 um 18:14 Uhr
Zitat von OIOOIOOIOIIOOOIIOIIOIOOO:

Zitat von 143127:
Doch tut es, aber nur das aktuelle seit Version GNU Awk 4.1.0 siehe Hinweis im Link.
https://groups.google.com/forum/#!topic/comp.lang.awk/QM51VPAlw4I
Also ich hab hier GNU Awk 4.2.1, API: 2.0 (GNU MPFR 4.0.2, GNU MP 6.1.2)
Und es hat mir das ausgegeben: awk: not an option: -i


Bei mir mit

GNU Awk 4.1.4, API: 1.1 (GNU MPFR 4.0.1, GNU MP 6.1.2)

ist die Option dabei. Ich tippe auch mal, daß bei Dir die Option nicht mit ins binary gepackt wurde. Mit welcher Distribution arbeitest Du denn?

lks
Bitte warten ..
Mitglied: 143127
20.02.2020, aktualisiert um 18:20 Uhr
Gerade mal nachgesehen. Die Funktion steckt in der Library inplace.so in /lib/gawk. Ist sie dort nicht vorhanden klappt auch inplace als Wert des Parameters -i nicht auch wenn die Version es eigentlich supporten würde.

screenshot - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
21.02.2020 um 09:31 Uhr
Guten Tag,

bin derzeit an dem "Raspbian GNU/Linux 10 (buster)" dran.

Und den Ordner /lib/gawk oder awk kann nicht nicht finden.



Viele Grüße

OIOOIOOIOIIOOOIIOIIOIOOO
Bitte warten ..
Mitglied: OIOOIOOIOIIOOOIIOIIOIOOO
21.02.2020 um 11:09 Uhr
Eine Frage habe ich noch zur diese Zeile.

Ansage zur Variable
Suche nach dem Wert welches in der Variable zwei angegeben ist.
Ausgabe wenn die Variable in eine Zeile gefunden wurde.
ignorieren wenn der Wert in der Spalte zwei nicht gefunden wurde

Was ich aber nicht verstehe ist, an welche Stelle genau erkennt awk welches Trennzeichen für Spalte verwendet wird? Was macht man, wenn ein Trennzeichen zum Beispiel ; oder Tab ist?

Viele Grüße

OIOOIOOIOIIOOOIIOIIOIOOO
Bitte warten ..
Mitglied: 143127
21.02.2020, aktualisiert um 11:22 Uhr
Zitat von OIOOIOOIOIIOOOIIOIIOIOOO:
Ansage zur Variable
OK.


Suche nach dem Wert welches in der Variable zwei angegeben ist.
Nein $2 ist der Inhalt der zweiten Spalte und var1 der Inhalt der Variablen 1 die übergeben wurde

Ausgabe wenn die Variable in eine Zeile gefunden wurde.
Ausgabe der Spalten die $x sind Variablen die awk automatisch anlegt

ignorieren wenn der Wert in der Spalte zwei nicht gefunden wurde
$0 enthält in AWK immer die ganze Zeile.

Was ich aber nicht verstehe ist, an welche Stelle genau erkennt awk welches Trennzeichen für Spalte verwendet wird? Was macht man, wenn ein Trennzeichen zum Beispiel ; oder Tab ist?
Spaces und Tabs sind Standardmäßig ein Delimiter von AWK deswegen habe ich den nicht angegeben, wenn du einen anderen angeben willst machst du das mit Dem Parameter -F (steht für Field Delimiter)
-F ';'
Im String für den Delimiter nutzt man Regex-Syntax also Achtung.

Beispiel
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

BASH-Skript in Linux - Mailversand funktioniert nicht

gelöst Frage von DanielG1974Batch & Shell12 Kommentare

Hallo. Gleich vorweg: Ich habe keine Ahnung von BASH- oder BATCH-Skripten. Ich such mir hier und da was zusammen ...

Linux Tools

Dynamisches Menü mit Dialog für Linux Bash

gelöst Frage von OIOOIOOIOIIOOOIIOIIOIOOOLinux Tools4 Kommentare

Guten Tag, in einem Unix Forum habe ich eini interessante Lösung für dynamisches Menü gefunden: Dynamic Bash Dialog from ...

Linux Tools

Mailversand mit der Linux-Bash und mailx

gelöst Frage von WinLiCLILinux Tools6 Kommentare

Hallo zusammen, ich habe ein Bashskript dass einige Logs parsen soll und mir danach eine Mail mit den gefundenen ...

Batch & Shell

Bash sqlplus oder Bash Fehler?

Frage von MarabuntaBatch & Shell7 Kommentare

Hallo, da ich sehr eingeschränkt in Bash bin, brauche ich hier etwas Hilfe. Was stimmt mit dem EOF nicht? ...

Neue Wissensbeiträge
Informationsdienste

Leistungsschutzrecht: Ein neuer Diskussionsentwurf liegt vor

Information von Frank vor 1 TagInformationsdienste7 Kommentare

Anfang April (leider kein Scherz) hat das Bundesjustizministerium den nächsten ausformulierten Referentenentwurf für ein "erstes Gesetz zur Anpassung des ...

Instant Messaging

Videokonferenz oder Chatsystem für das Homeoffice

Information von Frank vor 1 TagInstant Messaging6 Kommentare

Ich hatte es bereits in einem Kommentar gepostet, da ich aber viele Nachfragen dazu bekam, hier noch mal meine ...

Off Topic

Ein wenig Aufklärung über Corona von Bill Gates persönlich

Information von Frank vor 2 TagenOff Topic24 Kommentare

Amerika hat ein Problem: Die Arroganz des sehr klugen Präsidenten führte zur aktuellen Corona-Krise in den USA. Was jetzt ...

Off Topic
3D-Drucker gegen Corona - helft mit!
Information von DerWoWusste vor 2 TagenOff Topic12 Kommentare

Unter vorigem Link sind Anleitungen, wie man sich mit seinem 3D-Drucker an der Produktion (Druck) von Bauteilen für Atemmasken ...

Heiß diskutierte Inhalte
Windows Server
Windows 7 wird im WSUS nicht angezeigt
gelöst Frage von DavidHergWindows Server24 Kommentare

Guten Abend zusammen, nachdem sich die Frage mit meinem WSUS erledigt hat und somit alles jetzt funktioniert, hab ich ...

Windows Server
Hyper-V VM vorm Admin absichern
Frage von MarabuntaWindows Server24 Kommentare

Hallo, wie bekomme ich eine VM in WS 2012 Hyper-V soweit abgetrennt, dass ein Admin ohne Passwort keinen (leichten) ...

Festplatten, SSD, Raid
Storage Wahl für Virtualisierungsumgebung
Frage von Le2000Festplatten, SSD, Raid11 Kommentare

Hallo allerseits, da ich bereits seit einiger Zeit aus der Materie ausgestiegen war und mich allmählich wieder einarbeite, wüsste ...

Batch & Shell
Lokale Variable belegen
gelöst Frage von IleiesBatch & Shell11 Kommentare

Hallo zusammen, Wie kann ich, wenn ich zwei cmd-Fenster geöffnet habe, von dem einen die Variablen des anderen verändern?