非常に似た質問が何度も要求された可能性があります。ファイルの最初の行の前にテキストを挿入するには?
ただし、これらのソリューションはすべてタブを追加し、ファイルの先頭に再度行を追加します。最初の行の先頭にタブを追加したいです。どうすればいいですか?
非常にありがとう
答え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