sed 's/.\(.*\)/\1/' myfile
私のファイルに次のものが含まれているとしましょう。
abc
def
ghi
最初の行の最初の文字だけを削除したいのですが、上記はすべての行からその文字を削除します。
答え1
おそらくsed '1s/.\(.*\)/\1/' myfile
?
答え2
awkを使用することもできます。awk 'NR==1 {sub(/./,"")} 1'
答え3
tail
で読むことができますバイトオフセットなので、ファイルはシングルバイト文字(通常UTF-8 ASCII)大丈夫でしょう。
あなたにとって重要かどうかは状況によって異なりますが、tail
それより速いです。おそらくなぜならsed
sed各行は個別に処理する必要がありますが...最初の行が発生する可能性がある場所では使用しないでください。特徴複数バイトを使用してください。
tail -c +2 "file"
~からman tail
-c, --bytes=N 最後の N バイトを出力するか、+N を使用して各ファイルから始まる N 番目のバイトを出力します。