Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Datenvergleich - Dateibearbeitung mit der BASH

Frage Linux Linux Tools

Mitglied: rsadmchef

rsadmchef (Level 1) - Jetzt verbinden

07.11.2014, aktualisiert 28.11.2014, 1053 Aufrufe, 2 Kommentare, 1 Danke

Hallo Team,

ich habe eine Liste als txt-Datei, hier benannt mit"Listing".

Da sind diverse Einträge in Text-Form enthalten:


AAAAAAA
BBBBBBB
CCCCCCC


Aus einem Programm habe ich einen Wert einer Variable, tx="DDDDDDD" erhalten,
die ich mit dem Inhalt von Listing unter zuhilfenahme eines BASH-Scriptes verrgleichen will.

ToDo:
Ist der Wert der Variable in Listing, nix machen,
Ist der Wert der Variable nicht in Listing, schreibe ihn 1x dazu.

Listing Inhalt Ergebnis nach Durchführung Script soll sein
AAAAAAA
BBBBBBB
CCCCCCC
DDDDDDD

Nach meinem Script-Entwurf:

#!/bin/bash
for text in 'cat Listing'; do
if [[ $text != $tx ]]; then
echo tx >> Listing
fi
done

Hier wird tx, also DDDDDDD schon im ersten Loop durch den Vergleich hinzugefügt.
Ich habe also viele Hinzufügungen von DDDDDDD

Das ist so nicht angedacht.

Was mache ich falsch bzw. welche Funktion oder Anweisung fehlt ?

Dank euch für eure Tipps.

Mit frdl Gruß
rsadmchef
Mitglied: Lochkartenstanzer
LÖSUNG 07.11.2014, aktualisiert 28.11.2014
Moin,

Warum mahst Du das so umständlich? Benutz doch grep und fals grep was findet, machst Du nichts, und wenn grep nicht findet, haust Du die zeile dazu.

lks

PS: Du führst den vergleich für jede zeile in "Listing" durch und da jede Menge ungleiche zeilen sind, fügt das skript auch jede menge zeilen zinzu. Nimm grep für den Test.
Bitte warten ..
Mitglied: Gersen
07.11.2014, aktualisiert 08.11.2014
Hallo,

der Kollege hats ja schon gesagt.
if ! grep -q $tx Listing ; then echo $tx >> Listing; fi
oder kürzer
grep -q $tx Listing || echo $tx >> Listing
sollte es tun.

Gruß,
Gersen
Bitte warten ..
Ähnliche Inhalte
Linux Tools
gelöst Bash Script contains Bilden und nutzen (19)

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema Linux Tools ...

Batch & Shell
gelöst Bash Script stoppt nach start (4)

Frage von flooo89 zum Thema Batch & Shell ...

Batch & Shell
gelöst Bash Mail senden (7)

Frage von Marabunta zum Thema Batch & Shell ...

Batch & Shell
gelöst Bash Nur Zahlen ausgeben regex (11)

Frage von Marabunta zum Thema Batch & Shell ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (52)

Frage von sabines zum Thema Internet ...

Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

Router & Routing
PFsense - Netzverbindung steht, aber kein Internet vorhanden (24)

Frage von aschmid zum Thema Router & Routing ...

Windows Server
gelöst Windows 2016 Hyper-V und VHDS (19)

Frage von emeriks zum Thema Windows Server ...