linux-command
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上的第二个字段的数据 |
| 。。 | 其余类推 |
Date: 2011-07-20 00:26:07 CST
HTML generated by org-mode 6.21b in emacs 23
本文介绍了Linux环境下常用的wget、grep及awk命令的使用方法与技巧。详细解析了wget用于下载文件时的各种选项,如静默模式和重命名输出;grep进行文本搜索时如何精确匹配目标内容;awk则展示了如何通过字段操作实现文本的精细过滤。

被折叠的 条评论
为什么被折叠?



