注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

牧笔临风

己有能,勿自私!

 
 
 

日志

 
 
 
 

文本的操作  

2010-05-18 21:50:31|  分类: linux基础篇 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
在我们的工作中,不可避免的与文本文件打交道,查看日志,修改配置文件等等。这里我们来分类来介绍一下:
  • 查看文本
cat 命令:
cat  [options ]file1 file2 ... 
这里可以查看file1, file2的内容,cat的常用参数有:
-A    显示所有字符,包括控制字符和非打印字符
-b  给非空的输出行编号
-n 编号所有的输出行
-s  把连续的空白行挤成一行空行
cat 经常用来将多个文件合成一个文件,例如:cat file1 file1 ... filen >> file
也可以与more连用查看行数比较多的文件 cat file | more
还可以用来数据库导入:比如建好一个数据库database可以这样 cat *.sql | mysql -u username -p passwd database & 这里的"&"是后台运行,因为数据库的导入可能需要很长时间,用后台运行可以避免终端阻塞在那不动。


less命令:
cat对于一个小的文件来说很有用,但对于比较大的文件就不能完全显示了,这时我们可以选择less命令,它支持vim模式的查找,上下滚动,还可以进入编辑模式。
主要的一些操作有:
空格    向下翻一屏
b  向上翻一屏
Enter 向前移动一行
k   向后移动一行
g       移动到文件的开头
G 移动到文件的结尾
/text  搜索text
n   向下搜索
N  向上搜索
q  退出
v  用文本编辑器打开(默认是vi)
这里要说一点,在linux中命令的大小写有一个技巧:大小写正好对应着操作的相反的两个方向

more命令:
more与less相似,只是没less那么灵活,也是按空格显示下一个屏,q键停止,不过它 是单方向

有时我们只关注文本的一部分,比如开头或结尾。这时我们用head和tail。它们都可以跟 -n num来显示开头或结尾的num行,如果没有给出行数,默认是10行, tail对查看日志特别有用,它还有一个参数 -f 使得它可以实时的显示日志的更新。

  • 查找文本
grep命令:
它的功能十分强大,建议多找一些实例来研究,这里并不多说。

  • 抽出文本:
cut命令:
常用的参数为:
-d 分隔符
-f 显示的列
-C 按字符分割
比如:我们知道/etc/passwd是由":"分隔成七部分,第三部分是uid,我们可以结合grep命令来查看uid>500的
cut -d: -f3 /etc/passwd | grep  ^5[0-9][0-9]
分析文本工具:
这里的命令比较多,wc, sort, uniq, diff, patch, aspell
wc命令:
-l  计行数
-w 计单词总数
-c 计字符总数
-m 计数字总数
sort命令:
-r 相反方向(默认升序)
-n 按数字大小来
-f 不分大小写
-u 去除重复的
-t c 以c为分界符
-k x 以c为分界符后的第x列
如: sort -t : -k 4 -n /etc/passwd 

uniq命令:从输入中删除重复的前后相接的行
-c 记录发生的次数
它与sort -u相似(有区别的,但我说不清,如果你能说清请告诉我文本的操作 - rock - 牧笔临风), 这个命令与sort连用更好
sort test.txt | uniq -c

aspell是拼写检查

  • 文件的比较
diff,一试就知道,我个人喜欢用vimdiff。
patch 这个命令从来没用过(比较危险)。 它用来复制在其它文件中进行的改变,建议少用,用时别忘了用-b参数备份改变的文件。

  • 对文件的处理
tr (translate)命令:
将一个集体中的字符转换成另一个集合中的字符, 只用于读标准输入端的数据
tr 'a-z' 'A-Z' <install.log 将install.log中的小写全部转换成大写
sed命令:
编程中多用于替换文本,支持正则表达式,set 's/abc/xef'  abc.txt, 用法灵活,与vim中的替换一样。
tee命令:
从一个输入端读然后保存到起来
上面这三个命令多配合管道来使用。
  评论这张
 
阅读(172)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017