黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图
您现在的位置: 黑客风云 >> 黑客文章 >> 操作系统 >> LINIX UNIX >> 文章正文
[推荐]使用Linux 文本工具简化数据的提取
      ★★★
使用Linux 文本工具简化数据的提取
文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2006-10-4
 

 awk

  awk 是 Linux 上功能最为强大的工具之一。它本身实际上是一种编程语言,可以实现复杂的逻辑语句,还可以简化部分文本的提取。在本文那中我们将不会详细对其进行介绍,而是快速了解一下它的语法,并尝试几个实际的例子。

  awk 命令包括一个模式和由一条或多条语句构成的操作,语法如下所示:

awk '/pattern/ {action}' file 

  请注意:

  一种非常有用的操作是打印数据!下面是如何引用一条记录中的域。

  我们还可以从一条记录中提取多个域,之间使用逗号分开。

  举例来说,要提取 /etc/passwd 文件中的第 6 个域,命令如下:

# awk -F: '{print $6}' /etc/passwd 
/root 
/bin 
/sbin 
/var/adm 
/var/spool/lpd 
/sbin 
/sbin 
/sbin 
/var/spool/mail 
/etc/news 
/var/spool/uucp 

  注意 -F 是由预先定义的 FS 变量所定义的输入域分隔符。在我们这个例子中是空格。

  要从 /etc/passwd 文件中提取第一个和第六个域,命令如下:

# awk -F: '{print $1,$6}' /etc/passwd 
root /root 
bin /bin 
daemon /sbin 
adm /var/adm 
lp /var/spool/lpd 
sync /sbin 
shutdown /sbin 
halt /sbin 
mail /var/spool/mail 
news /etc/news 
uucp /var/spool/uucp 
operator /root 

  要在域之间使用短横线代替冒号来打印这个文件的内容,命令如下:

# awk -F: '{OFS="-"}{print $1,$6}' /etc/passwd 
root-/root 
bin-/bin 
daemon-/sbin 
adm-/var/adm 
lp-/var/spool/lpd 
sync-/sbin 
shutdown-/sbin 
halt-/sbin 
mail-/var/spool/mail 
news-/etc/news 
uucp-/var/spool/uucp 
operator-/root 

  要使用短横线作为域之间的分隔符来打印文件,并且只以逆序打印第一个域和第六个域,命令如下:

# awk -F: '{OFS="-"}{print $6,$1}' /etc/passwd 
/root-root 
/bin-bin 
/sbin-daemon 
/var/adm-adm 
/var/spool/lpd-lp 
/sbin-sync 
/sbin-shutdown 
/sbin-halt 
/var/spool/mail-mail 
/etc/news-news 
/var/spool/uucp-uucp 
/root-operator 

  head

  head 工具打印每个文件的最开始部分的内容(默认是 10 行)。如果没有给定文件,它就从标准输入中读入内容,如果给定了文件名就从文件中读入内容。

  举例来说,如果我们希望从 memo 文件中提取前两行内容,命令如下:

# head -2 memo 
In order to better serve the needs of our mass 
market customers, ABC Publishing is 
integrating the groups selling to this channel 
for ABC General Reference and ABC Computer 
Publishing. This change will allow us to 
better coordinate our selling and marketing 
efforts, as well as simplify ABC's 
relationships with these customers in the 
areas of customer service, co-op management, 
and credit and collection. Two national 
account managers, Ricky Ponting and Greeme 
Smith, have joined the sales team as a result 
of these changes. 

  我们可以使用 -c 选项指定要显示的字节个数。举例来说,如果我们希望从 memo 文件中读取前两个字节的内容,可以使用下面的命令:

# head -c 2 memo 
In 

  tail

  tail 工具打印每个文件的最末尾部分的内容(默认是 10 行)。如果没有给定文件,它就从标准输入中读入内容,如果给定了文件名就从文件中读入内容。

  举例来说,如果我们希望从 memo 文件中提取最后两行内容,命令如下:

# tail -2 memo 

Please join me in welcoming each of our new team members. 

  我们可以使用 -c 选项指定要显示的字节个数。举例来说,如果我们希望从 memo 文件中读取最后五个字节的内容,可以使用下面的命令:

# tail -c 5 memo 
ers. 

  结束语

  现在我们已经知道如何使用各种工具从标准 Linux 文件中向外提取数据了。一旦提取出数据之后,这些数据就可以进行查看、打印或重定向到其他文件或数据库中了。了解了如何使用这些有用的工具可以帮助我们减少花费在烦杂任务上的时间,从而能够成为一名效率更高的管理员。

上一页  [1] [2] [3] [4] [5] [6] 

文章录入:sygbox    责任编辑:sygbox 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    VIP 专 区
    抽根憋闷烟的心声
    学习网页制作的理由
    加入终身会员的理由!!!
    学习黑客编程的5大理由
    学习免杀的6大理由
    学习软件破解的理由
    会员账号开通查询
    常见问题解答
    汇款向导
    学员报名咨询
    最 新 热 门
    基于Linux操作系统实现的传真系统12-09
    Linux操作系统上最好的10款开源游11-20
    Linux 系统中的超级权限的控制11-09
    Linux操作系统下的常见系统资源共11-07
    Linux下的中文显示和支持常见问题10-23
    嵌入式Linux系统的动态电源管理技10-13
    从硬盘安装Linux操作系统的方法步10-12
    深入浅出分析Linux设备驱动程序中10-10
    使用kgdb调试linux内核及内核模块10-04
    使用Linux 文本工具简化数据的提10-04
    如何在Linux操作系统下检测内存泄09-27
    Linux内核编译菜单中相关选项的意09-20
    相 关 文 章
  • 网游防沉迷系统全面实施 4月9日宣布

  • 40个Windows XP和Vista系统应用技巧

  • Linux操作系统中超级权限控制的应用

  • 40个Windows XP和Vista系统应用技巧

  • 网游防沉迷系统全面实施 4月9日宣布

  • 1000人使用Windows Vista之后的体验

  • 22个最实用的Vista应用技巧和常见问题

  • 将Vista系统分级评分提升至9.9的满分

  • Vista解惑100点之用Defender的10项知识

  • 谁在保证数据安全 深挖Vista安全特性

  • webshell+serv-u获取系统最高权限

  • Fedora Core6中IPtables日志管理技巧

  • Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
    ICP备案:冀06009886