web-dev-qa-db-ja.com

特定の行の巨大なテキストファイルを出力する

特定の行でエラーが発生する300 MBのSQLダンプがあります。

しかし、その行はファイルの中央にあります。最善のアプローチは何ですか?

head -n middleLine dump.sql > output

または、必要な行のみを出力できますか?

33
balsagoth

sed -n -e 123456p your.dumpを使用して123456行目を印刷できます

43

ファイルが長い場合は、使用を検討してください

sed -n 'X{p;q}' file

Xは行番号です。その行に到達すると、ファイルの読み取りを停止します。

23
ata

sedがあなたの好みに対して遅すぎる場合は、使用することもできます

cat $THE_FILE | head -n $DESIRED_LINE | tail -n 1
8
Patrick Bergner

これはあなたのために働くかもしれません:

 sed 'X!d;q' file

xは行番号です。

3
potong

Sedを使用できます:

sed -n "x p" dump.sql

ここで、xは行番号です。

3
Eugene Yarmash

これはPerlでも実行できます。

Perl -wnl -e '$. == 4444444 and print and exit;' FILENAME.sql

4444444は、印刷する行番号です。

3
Toby

次のようなawkを試すこともできます。

awk 'NR==YOUR_LINE_NO{print}' file_name
2
frankliuao