( ! ) Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/lib/menu/GKBase.class.php on line 114
Call Stack
#TimeMemoryFunctionLocation
10.0015413904{main}( ).../index.php:0
20.15044264736Joomla\CMS\Application\SiteApplication->execute( ).../index.php:49
30.861515945760Joomla\CMS\Application\SiteApplication->render( ).../CMSApplication.php:202
40.861815945816Joomla\CMS\Application\SiteApplication->render( ).../SiteApplication.php:778
50.861815946192Joomla\CMS\Document\HtmlDocument->parse( ).../CMSApplication.php:1030
60.861815946192Joomla\CMS\Document\HtmlDocument->_fetchTemplate( ).../HtmlDocument.php:545
70.862015946288Joomla\CMS\Document\HtmlDocument->_loadTemplate( ).../HtmlDocument.php:730
80.865315984528require( '/var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/component.php' ).../HtmlDocument.php:668
90.884516276472GKTemplate->__construct( ).../component.php:31
100.945516430352GKTemplateMenu->getMenuType( ).../gk.framework.php:84
110.960716474320require_once( '/var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/lib/menu/GKMenu.php' ).../helper.menu.php:19

( ! ) Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/lib/menu/GKHandheld.php on line 76
Call Stack
#TimeMemoryFunctionLocation
10.0015413904{main}( ).../index.php:0
20.15044264736Joomla\CMS\Application\SiteApplication->execute( ).../index.php:49
30.861515945760Joomla\CMS\Application\SiteApplication->render( ).../CMSApplication.php:202
40.861815945816Joomla\CMS\Application\SiteApplication->render( ).../SiteApplication.php:778
50.861815946192Joomla\CMS\Document\HtmlDocument->parse( ).../CMSApplication.php:1030
60.861815946192Joomla\CMS\Document\HtmlDocument->_fetchTemplate( ).../HtmlDocument.php:545
70.862015946288Joomla\CMS\Document\HtmlDocument->_loadTemplate( ).../HtmlDocument.php:730
80.865315984528require( '/var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/component.php' ).../HtmlDocument.php:668
90.884516276472GKTemplate->__construct( ).../component.php:31
100.968016597568GKTemplateMenu->getMenuType( ).../gk.framework.php:85
【Shell脚本】逐行处理文本文件 }' 2 cat data.dat | awk 'for(i=2;i<NF;i++) {printf $i} printf "n"}' 第1行代码输出data.dat里的每行数据,第2代码输出每行中从第2列之后的数据. 如果是单纯的数据或文本文件的按行读取和显示的话,使用awk命令比较方便. 3.使用for var in file 命令完成 for var in file 表示变量var在file中循环取值.取值的分隔符由$IFS确定. 1 for line in $(cat data.dat) 2 do 3 echo "File:${line}" 4 done 5 6 for line in `cat data.dat` 7 do 8 echo "File:${line}" 9 done 如果输入文本每行中没有空格,则line在输入文本中按换行符分隔符循环取值. 如果输入文本中包括空格或制表符,则不是换行读取,line在输入文本中按空格分隔符或制表符或换行符特环取值. 可以通过把IFS设置为换行符来达到逐行读取的功能. IFS的默认值为:空白(包括:空格,制表符,换行符).", "articleBody": "经常会对文体文件进行逐行处理,在Shell里面如何获取每行数据,然后处理该行数据,最后读取下一行数据,循环处理.有多种解决方法如下: 1.通过read命令完成. read命令接收标准输入,或其他文件描述符的输入,得到输入后,read命令将数据放入一个标准变量中. 利用read读取文件时,每次调用read命令都会读取文件中的"一行"文本. 当文件没有可读的行时,read命令将以非零状态退出. 1 cat data.dat | while read line 2 do 3 echo "File:${line}" 4 done 5 6 while read line 7 do 8 echo "File:${line}" 9 done < data.dat 2.使用awk命令完成 awk是一种优良的文本处理工具,提供了极其强大的功能. 利用awk读取文件中的每行数据,并且可以对每行数据做一些处理,还可以单独处理每行数据里的每列数据. 1 cat data.dat | awk '{print【Shell脚本】逐行处理文本文件 }' 2 cat data.dat | awk 'for(i=2;i<NF;i++) {printf $i} printf "n"}' 第1行代码输出data.dat里的每行数据,第2代码输出每行中从第2列之后的数据. 如果是单纯的数据或文本文件的按行读取和显示的话,使用awk命令比较方便. 3.使用for var in file 命令完成 for var in file 表示变量var在file中循环取值.取值的分隔符由$IFS确定. 1 for line in $(cat data.dat) 2 do 3 echo "File:${line}" 4 done 5 6 for line in `cat data.dat` 7 do 8 echo "File:${line}" 9 done 如果输入文本每行中没有空格,则line在输入文本中按换行符分隔符循环取值. 如果输入文本中包括空格或制表符,则不是换行读取,line在输入文本中按空格分隔符或制表符或换行符特环取值. 可以通过把IFS设置为换行符来达到逐行读取的功能. IFS的默认值为:空白(包括:空格,制表符,换行符)." }
Logo
Print this page

【Shell脚本】逐行处理文本文件

经常会对文体文件进行逐行处理,在Shell里面如何获取每行数据,然后处理该行数据,最后读取下一行数据,循环处理.有多种解决方法如下:

1.通过read命令完成.

read命令接收标准输入,或其他文件描述符的输入,得到输入后,read命令将数据放入一个标准变量中.

利用read读取文件时,每次调用read命令都会读取文件中的"一行"文本.

当文件没有可读的行时,read命令将以非零状态退出.

 
1 cat data.dat | while read line
2 do
3     echo "File:${line}"
4 done
5 
6 while read line
7 do 
8     echo "File:${line}"
9 done < data.dat
 

2.使用awk命令完成

awk是一种优良的文本处理工具,提供了极其强大的功能.

利用awk读取文件中的每行数据,并且可以对每行数据做一些处理,还可以单独处理每行数据里的每列数据.

1 cat data.dat | awk '{print $0}'
2 cat data.dat | awk 'for(i=2;i<NF;i++) {printf $i} printf "\n"}'

第1行代码输出data.dat里的每行数据,第2代码输出每行中从第2列之后的数据.

如果是单纯的数据或文本文件的按行读取和显示的话,使用awk命令比较方便.

3.使用for var in file 命令完成

for var in file 表示变量var在file中循环取值.取值的分隔符由$IFS确定.

 
1 for line in $(cat data.dat)
2 do 
3     echo "File:${line}"
4 done
5 
6 for line in `cat data.dat`
7 do 
8     echo "File:${line}"
9 done
 

如果输入文本每行中没有空格,则line在输入文本中按换行符分隔符循环取值.

如果输入文本中包括空格或制表符,则不是换行读取,line在输入文本中按空格分隔符或制表符或换行符特环取值.

可以通过把IFS设置为换行符来达到逐行读取的功能.

IFS的默认值为:空白(包括:空格,制表符,换行符).


( ! ) Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/item.php on line 169
Call Stack
#TimeMemoryFunctionLocation
10.0015413904{main}( ).../index.php:0
20.15044264736Joomla\CMS\Application\SiteApplication->execute( ).../index.php:49
30.15044264736Joomla\CMS\Application\SiteApplication->doExecute( ).../CMSApplication.php:196
40.492011455848Joomla\CMS\Application\SiteApplication->dispatch( ).../SiteApplication.php:233
50.493111480448Joomla\CMS\Component\ComponentHelper::renderComponent( ).../SiteApplication.php:194
60.495211535776Joomla\CMS\Component\ComponentHelper::executeComponent( ).../ComponentHelper.php:377
70.495911563176require_once( '/var/www/vhosts/shan.info/httpdocs/components/com_k2/k2.php' ).../ComponentHelper.php:402
80.510711962808K2ControllerItem->execute( ).../k2.php:64
90.510711962808K2ControllerItem->display( ).../BaseController.php:710
100.529012613512K2ControllerItem->display( ).../item.php:78
110.529012613512K2ControllerItem->display( ).../controller.php:19
120.536412984552Joomla\CMS\Cache\Controller\ViewController->get( ).../BaseController.php:663
130.539113004920K2ViewItem->display( ).../ViewController.php:102
140.827415862208K2ViewItem->display( ).../view.html.php:742
150.827415862208K2ViewItem->loadTemplate( ).../HtmlView.php:230
160.854016035144include( '/var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/item.php' ).../HtmlView.php:701

( ! ) Notice: Only variables should be assigned by reference in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/item.php on line 478
Call Stack
#TimeMemoryFunctionLocation
10.0015413904{main}( ).../index.php:0
20.15044264736Joomla\CMS\Application\SiteApplication->execute( ).../index.php:49
30.15044264736Joomla\CMS\Application\SiteApplication->doExecute( ).../CMSApplication.php:196
40.492011455848Joomla\CMS\Application\SiteApplication->dispatch( ).../SiteApplication.php:233
50.493111480448Joomla\CMS\Component\ComponentHelper::renderComponent( ).../SiteApplication.php:194
60.495211535776Joomla\CMS\Component\ComponentHelper::executeComponent( ).../ComponentHelper.php:377
70.495911563176require_once( '/var/www/vhosts/shan.info/httpdocs/components/com_k2/k2.php' ).../ComponentHelper.php:402
80.510711962808K2ControllerItem->execute( ).../k2.php:64
90.510711962808K2ControllerItem->display( ).../BaseController.php:710
100.529012613512K2ControllerItem->display( ).../item.php:78
110.529012613512K2ControllerItem->display( ).../controller.php:19
120.536412984552Joomla\CMS\Cache\Controller\ViewController->get( ).../BaseController.php:663
130.539113004920K2ViewItem->display( ).../ViewController.php:102
140.827415862208K2ViewItem->display( ).../view.html.php:742
150.827415862208K2ViewItem->loadTemplate( ).../HtmlView.php:230
160.854016035144include( '/var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/item.php' ).../HtmlView.php:701
Template Design © Joomla Templates | GavickPro. All rights reserved.