linux-command

本文介绍了Linux环境下常用的wget、grep及awk命令的使用方法与技巧。详细解析了wget用于下载文件时的各种选项,如静默模式和重命名输出;grep进行文本搜索时如何精确匹配目标内容;awk则展示了如何通过字段操作实现文本的精细过滤。

linux-command

Table of Contents

1 wget

是一个通过http从web上下载文件的程序。无交互界面。

man wget会显示1000多行的文档。

现在主要用到的是

-o

是将打印到stdout的信息输出到文件

$ wget -o logmessage www.zhangfeng356.com
$ cat logmessage
--2011-07-19 21:01:00--  http://www.zhangfeng356.com/
Resolving www.zhangfeng356.com... 173.231.1.40
Connecting to www.zhangfeng356.com|173.231.1.40|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 606 [text/html]
Saving to: `index.html.4'

     0K                                                       100% 30.9M=0s

2011-07-19 21:01:01 (30.9 MB/s) - `index.html.4' saved [606/606]

-quiet

静默执行。不输出log。

-O(大写O)

主要是将下载的文件重命名。

2 grep

[quote]原帖由 [i]lotto[/i] 于 2008-3-17 11:20 发表 因为我不是在shell用的,用在其他程序,
有可以用在grep 上的正则表达式吗? 比如
echo "xxxxxxxxxx" |  grep -o  可以出来。 [/quote]
grep 能选择输出一部分么?
我印象中grep 只能把包含匹配内容的行全部显示出来

http://bbs.unixbeta.com/archiver/tid-19071.html

#END_EXAMPLE

我在网上找如何让grep搜索后只输出匹配到的字符,而不是整个行。现在看来是不行了。

那么grep是不能承担(以字符为单位的)文本过滤任务了。

* akw

见http://www.aslibra.com/doc/awk.htm

找到一个好文档真的非常重要。网上搜了半天,大都是一些it blog转来转去,转的还是man里的东西。

看到这个后,终于写出了第一个成功的akw命令

#+BEGIN_EXAMPLE
$ cat mytest
456 789
$ akw '{print $2}' mytest #输出当前处理行的第2个字段的内容。

* 因为支持“字段”这个概念,akw可以用来过滤文本,即选择输出某行的一部分,而不是全部。 *

我的任务是:将一行字符串“8000 1.html” 通过某个工具过滤,变成 “8000”

现在我用到的是

2.1 字段

字段(Field) : 为数据行上被分隔开的子字符串.
以数据行"A125 Jenny 100 210"为例,
第一栏 第二栏 第三栏 第四栏 "A125" "Jenny" 100 210
一般是以空格符来分隔相邻的字段. ( 参考 : 附录 D 内建变量"FS" )

字段变量含义
$0一字符串,其内容为目前awk所读入的数据行。
$1$0上的第一个字段的数据
$2$0上的第二个字段的数据
。。其余类推

freay <zfreay@ubuntu>

Date: 2011-07-20 00:26:07 CST

HTML generated by org-mode 6.21b in emacs 23

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值