Schnitt durch nicht maskiertes Leerzeichen abgegrenzt?

Schnitt durch nicht maskiertes Leerzeichen abgegrenzt?

Ich habe eine Datei mit Text im Format:

User\ Name My\ Password

Beachten Sie, dass dies tatsächlich eine 2-spaltige Datei ist, wobei die Spalten maskierte Leerzeichen enthalten.

cut -d' ' -f2produziert Name, aber ich möchte produzieren My Password.

Ist es möglich, cutnur auf der Grundlage von nicht maskierten Leerzeichen zu trennen? Wenn nicht, welchen alternativen Befehl kann ich verwenden?

Antwort1

Ich würde GNU vorschlagengrepAnsatz:

Probe input.txt:

User\ Name My\ Password
first\ field second\ field

Schneiden Sie das 2. Feld aus2-spaltigDatei:

grep -Po '[^\\]\x20\K.*' input.txt

Die Ausgabe:

My\ Password
second\ field

Oder das gleiche mitsed:

sed 's/.*[^\\]\x20\(.*\)/\1/' input.txt

----------

Der entscheidende Teil des Regex-Musters ist, [^\\]\x20dass es mit einem Leerzeichen \x20(Hexadezimalcode für Leerzeichen) übereinstimmt, wenn ihm ein beliebiges Zeichen vorangestellt ist, außer dem maskierenden Backslash[^\\]

verwandte Informationen