Seperti yang dikatakan sebagian besar jawaban, mungkin tab
literal char adalah yang terbaik.
info sed
mengatakan "\t tidak 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.
...
Anda cukup menggunakan sed
i
perintah dengan benar:
some_command | sed '1i\
text text2'
di mana, seperti yang saya harap sudah jelas, ada tab antara 'text' dan 'text2'. Di MacOS X (10.7.2), dan karenanya mungkin di platform berbasis BSD lainnya, saya dapat menggunakan:
some_command | sed '1i\
text\ttext2'
dan sed
menerjemahkan \t
ke dalam tab.
Jika sed
tidak akan menafsirkan \t
dan menyisipkan tab pada baris perintah merupakan masalah, buat skrip shell dengan editor dan jalankan skrip tersebut.
Dengan asumsi bash (dan mungkin shell lain juga akan berfungsi):
some_command | sed $'1itext\ttext'
Bash akan memproses jalan keluar, seperti \t
, di dalam $' '
sebelum meneruskannya sebagai arg ke sed.