linux環境下,對於一個大文件,如何查看其中某行的內容


需求說明

  今天在做mysql數據導入的過程中,導入到最后有一個報錯,報某張表不存在。然后就想看看這行到底是在做什么操作的時候報的錯誤。

報錯信息

[mysql@host-10-191-36-11 ~]$ cat nohup.out 
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1146 (42S02) at line 5926: Table 'prod.pm_store_chnl_relation' doesn't exist   #通過報錯信息可以知道,在5926行有報錯。因為文件太大,vi太慢。

 1.通過sed命令來打印5926行的內容

[mysql@host-10-191-36-11 ~]$ sed -n '5926 p' Backup_sysman_20190106_212506.sql 
/*!50001 CREATE ALGORITHM=UNDEFINED */

備注:發現僅有這一樣無法定位,增加范圍,多打印幾行內容。

2.通過sed命令,打印5926到5930這5行的內容

[mysql@host-10-191-36-11 ~]$ sed -n '5926,5930 p' Backup_sysman_20190106_212506.sql 
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */
/*!50001 VIEW `pm_store_chnl_lon_lat` AS select distinct `b`.`CHNL_ID` AS `CHNL_ID`,`a`.`LATITUDE` AS `LATITUDE`,`a`.`LONGITUDE` AS `LONGITUDE` from (`sysman`.`sc_depart` `a` join `prod`.`pm_store_chnl_relation` `b`) where (`a`.`DEPART_ID` = `b`.`STORE_ID`) */;
/*!50001 SET character_set_client      = @saved_cs_client */;
/*!50001 SET character_set_results     = @saved_cs_results */;

 備注:通過這個信息也就是知道了哪里有問題了。

 

小結

  通過sed打印指定行號的內容  sed -n 'xp'  xxxx.xxx

  通過sed打印某個范圍內的內容  sed -n 'x,yp' xxx.xxx

 

文檔創建時間:2019年1月7日13:33:25


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM