扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
使用sed命令;
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站建设、外贸营销网站建设、中方网络推广、成都微信小程序、中方网络营销、中方企业策划、中方品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供中方建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
具体查看使用规则:
#sed --help;
显示文件X行命令:
#sed -n 'xp' filename
显示文件X行到Y行的内容:
#sed -n 'x,yp' filename
相关显示命令还有tail,cat.awk,head等,可以常看LInux命令大全,或者man命令|help命令查看相关用法。
在Linux下的开发中,printf打印调试信息默认输出到标准输出 stdout (即屏幕/终端)中。我们也可以使用输出重定向技术输出到指定文件中,输出重定向即是把原本要输出到屏幕的信息写入到指定文件中。
但是有时候既要实时查看打印调试信息,又要把这些调试信息保存下来发给他人分析。
下面分享能达到这个需求的两种方法:
1、使用script工具
script工具是一个非常使用的工具,可以把输出到终端的信息记录下来。使用方法如:
(1)输入 script log.txt命令开始保存终端输出的信息 ,其中log.txt为需要写入的log文件,可随意命名。
(2)输入exit退出保存。
演示如下:
之前我只知道有script 这样一个工具,而且经常在Ubuntu上使用。奈何开发板里的系统没这个工具,所以很长的一段时间我都是等程序跑完后我手动从终端拷贝全部信息到文本中保存。。。
刚开始程序跑得不久,日志信息还不是很多,还可以接受。后面程序跑久了,日志信息越来越多,再这么手动拷贝实在受不了。
所以找了另外的方法:使用tee工具。
2、使用tee工具
tee工具用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin。简单的说就是把数据重定向到给定文件和屏幕上。
存在缓存机制,每1024个字节将输出一次。若从管道接收输入数据,应该是缓冲区满,才将数据转存到指定的文件中。若文件内容不到1024个字节,则接收完从标准输入设备读入的数据后,将刷新一次缓冲区,并转存数据到指定文件。
演示如下:
可见,使用tee工具输入到文本里的内容比script工具输入到文本里的内容还要干净,就是程序打印输出的东西。
sed = 文件名 | sed 'N;s/\n/:/' | sed -n '/显示行包含的关键字/p',例子:
假设我有文件test,内容为:
Baidu123
ppppqqqq
bAidu567
a.此时我想把含有baidu的行以 "行号:该行完整内容"的形式输出,则只需要执行:
sed = test | sed 'N;s/\n/:/' | sed -n '/baidu/Ip' //最后p前面的是大写的I
得到结果为:
1:Baidu123
3:bAidu567
*.忽略大小写,还有一个比较笨的方法,使用[],将关键字的所有字母的大小写都包括了,就来例来说,/[bB][aA][iI][dD][uU]/
b.输出所有的行,不使用关键字过滤行,则只需要去掉最后一部分,即:
sed = test | sed 'N;s/\n/:/'
得到结果为:
1: Baidu123
2:ppppqqqq
3bAidu567
完!
---------------------------------------------
grep解决这个问题比较好吧,假设有文件test,内容为:
Baidu123
ppppqqqq
bAidu567
如果我想得到格式如 line: line_content这种格式内容的话:
grep -ni "baidu" test
结果为:
1:Baidu123
3:bAidu567
linux输出文件有几列可以使用catfilename|awk'{printNF}'命令可以得到每一行对应有多少列。
例如文件a.txt的内容为:
你好 北京 天安门
1234
12345
输入并执行cata.txt|awk'{printNF}'得出以下结果:
3
4
5
输出结果分别代表第一行有3列,第二行有4列,第三行有5列。
1、Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。
它除了在服务器操作系统方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善这个操作系统,使其最大化地适应用户的需要。
2、AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言的最大功能取决于一个人所拥有的知识。awk经过改进生成的新的版本nawk,gawk,现在默认linux系统下日常使用的是gawk,用命令可以查看正在应用的awk的来源(ls-l/bin/awk)
扩展资料:
linux主要特性:
1、完全兼容POSIX1.0标准
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
2、多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
3、良好的界面
Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
4、支持多种平台
Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux2.4版内核已经能够完全支持Intel64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
参考资料来源:
百度百科-Awk
百度百科-linux
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流