以下は、sed(Mac OS X 10.11.1 bash)を使用して解析したいテキストです。
1
00:25:43,959 --> 00:25:46,502
Here you are, sir.
Main level, please.
を使用して最初の行を削除できますsed -e 's/[0-9]//'
。
しかし、その場合、sed -e 's/^[0-9]//'
最初の行、つまり1
まだそこに残ります。1
最初の行の始まりなので削除する必要がありますか?
ヘッダー-n1 2001.srt OD-C |
0000000 357 273 277 1 \n
0000005
「1」で始まる新しいテキストファイルを作成しました。ヘッダー-n1 2002.srt OD-C |
0000000 1 \n
0000002
sed -e 's/^[0-9]//' 新しく作成されたファイルに適用されます。
はい、「1」の前に何かがあります。
答え1
ファイルはUTF-8で始まります。バイト順表示。これは、UTF-8の3バイトでエンコードされたUnicodeシンボルU + FEFFです。357 273 277
この3バイトをデフォルト8に印刷すると表示されます。
コマンドの場合、sed
行の先頭にあるバイトは1
実際には行の最初の文字ではないことを意味します。他の多くのツールも同じ方法で処理します。
有用な結果を得るには、他の処理を実行する前にBOMを削除する必要があります。たとえば、sed
スクリプトを実行してs/^\xef\xbb\xbf//
BOMを削除できます。あなたの完全な命令は
sed -e 's/^\xef\xbb\xbf//;s/^[0-9]//'