特定の行でエラーが発生する300 MBのSQLダンプがあります。
しかし、その行はファイルの中央にあります。最善のアプローチは何ですか?
head -n middleLine dump.sql > output
?
または、必要な行のみを出力できますか?
sed -n -e 123456p your.dump
を使用して123456行目を印刷できます
ファイルが長い場合は、使用を検討してください
sed -n 'X{p;q}' file
Xは行番号です。その行に到達すると、ファイルの読み取りを停止します。
sed
があなたの好みに対して遅すぎる場合は、使用することもできます
cat $THE_FILE | head -n $DESIRED_LINE | tail -n 1
これはあなたのために働くかもしれません:
sed 'X!d;q' file
xは行番号です。
Sedを使用できます:
sed -n "x p" dump.sql
ここで、x
は行番号です。
これはPerlでも実行できます。
Perl -wnl -e '$. == 4444444 and print and exit;' FILENAME.sql
4444444は、印刷する行番号です。
次のようなawk
を試すこともできます。
awk 'NR==YOUR_LINE_NO{print}' file_name