改行なしでファイルの先頭にタブ文字を追加する

改行なしでファイルの先頭にタブ文字を追加する

非常に似た質問が何度も要求された可能性があります。ファイルの最初の行の前にテキストを挿入するには?

ただし、これらのソリューションはすべてタブを追加し、ファイルの先頭に再度行を追加します。最初の行の先頭にタブを追加したいです。どうすればいいですか?

非常にありがとう

答え1

1つのアプローチは、シェルが構造<(...)を理解するのに十分スマートであり、処理echo方法-n-eオプションを知るのに十分スマートであると仮定することです。

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

または:

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

これを行う必要がある場合は、次のことがわかるほどスマートでsedあるとします。sed\t

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

しかし、これはあなたのsed

答え2

POSIX仕様を使用してくださいex。ファイルの先頭にタブ - 改行シーケンスを追加してからコマンドを実行し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

関連情報