GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist der richtige Weg, um Tabulatoren in sed einzufügen?

Wie die meisten Antworten sagen, wahrscheinlich wörtlich tab char ist der beste.

info sed sagen "\t ist nicht portabel. " :

...
'\CHAR'
    Matches CHAR, where CHAR is one of '$', '*', '.', '[', '\', or '^'.
    Note that the only C-like backslash sequences that you can
    portably assume to be interpreted are '\n' and '\\'; in particular
    '\t' is not portable, and matches a 't' under most implementations
    of 'sed', rather than a tab character.
...

Sie können einfach den sed verwenden i Befehl richtig:

some_command | sed '1i\
text    text2'

wo, wie ich hoffe, es ist offensichtlich, ein Tabulator zwischen 'text' und 'text2' ist. Unter MacOS X (10.7.2) und daher wahrscheinlich auch auf anderen BSD-basierten Plattformen konnte ich Folgendes verwenden:

some_command | sed '1i\
text\ttext2'

und sed übersetzte den \t in eine Registerkarte.

Wenn sed interpretiert \t nicht und das Einfügen von Tabulatoren in der Befehlszeile ein Problem darstellt, erstellen Sie ein Shell-Skript mit einem Editor und führen Sie dieses Skript aus.


Angenommen bash (und vielleicht funktionieren auch andere Shells):

some_command | sed $'1itext\ttext'

Bash verarbeitet Escapezeichen wie \t , innerhalb von $' ' bevor es als arg an sed übergeben wird.


Linux
  1. Wie fügt man Text vor der ersten Zeile einer Datei ein?

  2. Was ist der sicherste Weg, ein Verzeichnis in * nix zu leeren?

  3. Was bedeutet POSIX?

  4. Was ist der richtige Weg, um einen Mongod-Dienst unter Linux / OS X zu starten?

  5. Was sind die Unterschiede zwischen grep, awk und sed?

Was ist die Shell unter Linux?

Was ist der einfachste Weg, um Speicherplatz auf einer Festplatte freizugeben?

Wie lernt man SELinux am besten?

Was ist der schnellste Weg, um ein Skript auszuführen?

Was ist das NSFS-Dateisystem?

Was ist der leichteste Weg, um Grafiken zu rendern Gentoo?