便携。
TAB=$(printf '\t')
sed "s/^ */$TAB/" < file.in > file.out
Run Code Online (Sandbox Code Playgroud)
一些炮弹(ksh93,zsh,bash,mksh和FreeBSDsh至少)也支持行情的一种特殊形式($'...')里的东西一样\t被扩展。
sed $'s/^ */\t/' < file.in > file.out
Run Code Online (Sandbox Code Playgroud)
该fish外壳扩展引号以外的人:
sed 's/^ */'\t/ < file.in > file.out
Run Code Online (Sandbox Code Playgroud)
sed像 GNU 这样的一些实现 本身sed也识别\t出 TAB 的含义。因此,对于这些,这也将起作用:
sed 's/^ */\t/' < file.in > file.out
Run Code Online (Sandbox Code Playgroud)
可移植地,awk确实\t在其双引号内展开。并且还使用扩展的正则表达式,因此可以使用x+代替xx*:
awk '{sub(/^ +/, "\t"); print}' < file.in > file.out
Run Code Online (Sandbox Code Playgroud)