verketten Spalten bedeuten wird das Trennzeichen zu entfernen, hier ist ein einfacher Ansatz
tr -d '#' <file | md5sum
wenn Sie wollen extrahiere nur die dritte Spalte und verknüpfe Zeilen zu einer großen Zeichenkette (aber warum, weil du Informationen verlierst)
cut -d# -f3 file | tr -d '\n' | md5sum
beachten Sie, dass nun diese dritte Spalte
ab
c
und
a
bc
wird mit dem gleichen Hash-Ende. Besser die Unterscheidbarkeit der Felder zu erhalten, indem die Werte mit dem gleichen Trennzeichen
cut -d# -f3 file | paste -sd# | md5sum
jedoch verketten, ohne Verkettung können Sie davon ausgehen, die Felder mit den Newline-Trennzeichen getrennt sind und gehen mit
cut -d# -f3 file | md5sum
es sei denn, ist ein unspezifizierter Grund.
UPDATE: Sie möchten MD5-Hash für jede Zeile erstellen! Welches war die kritische Information in der Frage fehlt.
Sie können die Zeilen nicht wie in den anderen Programmen in md5sum pipen (Sie benötigen jedes Mal einen neuen Aufruf). Eine Möglichkeit, dies zu adressieren ist
tr -d '#' <file | while read line; do echo $line | md5sum; done
ed5d34c74e59d16bd6d5b3683db655c3 -
8ad37f51cbc6de792c885acf17ba7e40 -
fe672d984bef56cbfce488080f8055b7 -
jedoch zur Kenntnis, dass Sie verlieren Informationen, wenn Sie Ihre Felder sind in der Länge und überlappend in Werten variieren.
Zum Beispiel, AB#C
und A#BC
wird den gleichen Hash generieren, die möglicherweise oder nicht gewünscht werden, aber ich denke, Sie haben vielleicht nicht berücksichtigt.
Haben Sie versucht, 'echo -n" HELLO WORLD "' mit Ihrem awk Befehl zu ersetzen? Was macht das nicht, was du willst? –
Danke für Ihre Antwort. hier meinen CSV: A # B # D # C E # F # G # H I # J # K # L Der Ausgang wird sein: md5 (ABCD) md5 (EFGH) md5 (IJKL) –