web-dev-qa-db-ja.com

ファイルの1行だけのバイト数を取得するにはどうすればよいですか?

ファイルの1行だけでバイト数を取得する方法を知りたいのですが。

wc -lはファイルの行数を取得し、wc -cファイル内の合計バイト数を取得します。ただし、必要なのは、ファイルの1行だけのバイト数を取得することです。

どうすればこれを実行できますか?

6
chromechris
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 KennedyPeter Cordes に感謝します。)

巨大なファイルで猫XからYへの行 のテキスト行を抽出するさまざまな方法のパフォーマンス比較があります。

14
Stephen Kitt

これを試して:

line=10
tail -n "+$line" myfile | head -n 1 | wc -c

カウントする必要がある行番号にlineを設定します。

6
jayhendren

awkを使用してもう少し簡単:

awk 'NR==10{print length($0)}' myfile
5
Kevin