ファイルの1行だけでバイト数を取得する方法を知りたいのですが。
wc -l
はファイルの行数を取得し、wc -c
ファイル内の合計バイト数を取得します。ただし、必要なのは、ファイルの1行だけのバイト数を取得することです。
どうすればこれを実行できますか?
sed -n 10p myfile | wc -c
myfile
(改行/改行文字を含む)の10行目のバイトをカウントします。
少し読みにくいバリアント、
sed -n "10{p;q;}" myfile | wc -c
(またはsed '10!d;q'
またはsed '10q;d'
)は、10行目以降のファイルの読み取りを停止します。これは、より長いファイル(またはストリーム)では興味深いでしょう。 (これにつながる議論について Tim Kennedy と Peter Cordes に感謝します。)
巨大なファイルで猫XからYへの行 のテキスト行を抽出するさまざまな方法のパフォーマンス比較があります。
これを試して:
line=10
tail -n "+$line" myfile | head -n 1 | wc -c
カウントする必要がある行番号にline
を設定します。
awk
を使用してもう少し簡単:
awk 'NR==10{print length($0)}' myfile