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 IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 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, 815 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

Linux Bash case Abfrage funktioniert nicht

gelöst Frage von BadFsaadKlBatch & Shell4 Kommentare

Hallo zusammen, ich bin gerade dabei ein kleines Linux Script zu schreiben welches per User Input Werte einlesen soll. ...

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 ...

Neue Wissensbeiträge
Exchange Server

Exchange News and Announcements - Microsoft Ignite 2020

Ticker von Dani vor 1 StundeExchange Server8 Kommentare

Today we are announcing that the next versions of Exchange Server, SharePoint Server, Skype for Business Server and Project ...

Sicherheit

Citrix Schwachstellen und Sicherheitslücken - CB-K20-0912

Ticker von Dani vor 8 StundenSicherheit

Moin, Citrix Application Delivery Controller (ADC) ist eine Lösung zur Anwendungsbereitstellung und Lastverteilung. Citrix Gateway ist eine vom Kunden ...

LAN, WAN, Wireless

iOS 14: Private WLAN-Adressen können für Probleme sorgen

Ticker von Reini82 vor 13 StundenLAN, WAN, Wireless4 Kommentare

Guten Morgen, IOS 14 und Android wechseln die MAC-Adressen (bei Android für jedes neue WLAN Netzwerk, IOS offenbar ständig). ...

Microsoft
Manage USB Devices on Windows Hosts
Ticker von Dani vor 1 TagMicrosoft1 Kommentar

Raven is a Miniature Schnauzer that doesn’t like small critters in the yard unless they can fly. This gives ...

Heiß diskutierte Inhalte
Windows Server
Win Server2016 Datacenter Installation Frage
Frage von UschadeWindows Server19 Kommentare

Hallo vereehrte Kolleginnen und Kollegen, Ich versuche einen Win Server2016 Datacenter zu installieren. Das Blech ist ein Fujitsu Primergy ...

Windows Server
Hochstufen zum DC aufgrund Replikationsproblemen nicht möglich
Frage von FlinxitWindows Server18 Kommentare

Hallo, Wir haben ein Netzwerk übernommen, in welchem ein DC momentan aktiv ist, ein weiterer im AD angegebener DC ...

Hyper-V
Hyper-V VM Copy Performance innerhalb der VM
gelöst Frage von tobitobsnHyper-V18 Kommentare

Folgendes Situation: Hyper-V Host mit 2xSSD (RAID1) mit OS und 2xHDD (RAID1) für Daten. Der Host hat aktuell (noch) ...

Backup
Gesicherter Backupserver gesucht
gelöst Frage von lcer00Backup17 Kommentare

Hallo zusammen, ich habe mir am Wochenende den interessanten Vortrag aus folgendem Beitrag angesehen: DerWoWusste Danke für den Link ...

Administrator Magazin
09 | 2020 Ein Internetauftritt ist für Firmen heute eine Selbstverständlichkeit, doch gilt es beim Betrieb der entsprechenden Server einiges zu beachten. Im September beleuchtet das IT-Administrator Magazin deshalb das Schwerpunktthema "Webdienste und -server". Darin lesen Sie unter anderem, wie Sie Webapplikationen sinnvoll überwachen und welche Open-Source-Managementtools ...
Best VPN