将制表符添加到文件开头,无需换行

将制表符添加到文件开头,无需换行

一个非常相似的问题可能已经被问过很多次了,例如如何在文件的第一行之前插入文本?

但所有这些解决方案都会添加一个选项卡,然后一行返回到文件的开头。我想在第一行的开头添加一个选项卡..该怎么做?

非常感谢

答案1

一种方法是,假设 shell 足够聪明,能够了解<(...)构造,并且echo足够聪明,知道如何处理-n-e选项:

cat <(echo -ne '\t') file

或者:

( printf '\t'; cat file ) >new_file

如果您必须这样做sed,假设您sed足够聪明,知道\t

sed '1s/^/\t/' file

但这会带来更多问题,具体取决于您的sed.它也不适用于空文件。

答案2

使用exPOSIX 指定的。在文件开头添加制表符换行符序列,然后运行ex​​的join命令。

无论文件是否为空,这都有效,并且应该完全可移植到任何 UNIX 或 Linux 系统。

(请注意,如果文件以空文件开头,则此命令后面的内容将为制表符换行符。从技术上讲,没有终止换行符的文件实际上不是文本文件。)

printf '0a\n\t\n.\n1j!\nx\n' | ex myfile.txt

如果您单独运行该printf命令,您可以看到传递到的指令ex

$ printf '0a\n\t\n.\n1j!\nx\n'
0a

.
1j!
x

请注意,上面的空白行中有一个制表符。

答案3

sed '1 s/^/\t/' < textfile.txt

相关内容