shell基础五:输入和输出/正则表达式
来源:互联网 发布:mac系统壁纸路径 编辑:程序博客网 时间:2024/06/18 06:48
1.在e c h o命令输出之后附加换行,可以使用\ n选项:
echo -e "hello\n\n\n"
2.在e c h o语句中使用跳格符,记住别忘了加反斜杠\:
- echo -e "here is a tab\there are two tabs\t\tok"
结果:
- here is a tab here are two tabs
3. 把一个字符串输出到文件中,使用重定向符号>。
在下面的例子中一个字符串被重定向到一个名为m y f i l e的文件中:
echo "hello" > myfile
在下面的例子中一个字符串被重定向到一个名为m y f i l e的文件中:
echo "hello" > myfile
4.或者可以追加到一个文件的末尾,这意味着不覆盖原有的内容:
echo "hello">>myfile
输出变
- echo "$LOGNAME carried them out at `date`">>myfile
- 结果:
- m y f i l e文件中的内容:5.引号是一个特殊字符,所以必须要使用反斜杠\来使s h e l l忽略它的特殊含义。
The log files have all been done
sam carried them out at 六 11月 13 12:54:32 CST 2004
假设你希望使用e c h o命令输出这样的字符串:“/ d e v / r m t 0”,那么我们只要在引号前面加上反斜杠\即可:---------------------------------------------------------------------------------------------------------------------------------- $ echo "\"/dev/rmt0"\"
- "/dev/rmt0"
- $
- $ echo "\"/dev/rmt0"\"
- 1()与{}区别
- 2.执行顺序
- (cmd1;cmd2;...;cmdN)#在一个子shell里执行一组命令
- {cmd1;cmd2;...;cmdN}# 在当前shell里执行一组命令
- 这是一个基本概念
- [jason@firewall jason]$ A=1;echo $A;{ A=2; };echo $A
- 1
- 2
- [jason@firewall jason]$ A=1;echo $A;( A=2; );echo $A
- 1
- 1
- { A=2; }改变了当前shell变量的值
- ( A=2; )未改变当前shell变量的值
- (cmd1;cmd2;...;cmdN)#在一个子shell里执行一组命令
01.$ sort quarter_end.txt > quarter.sorted && lp quarter.sorted
复制代码
使用命令组合的方法,如果s o r t命令执行成功了,先将输出文件拷贝到一个日志区,然后再打印。
01.$ sort quarter_end.txt > quarter.sorted && (cp quarter.sorted /logs/quarter.sorted; lp quarter.sorted) - 3.正则表达式
- 语法:http://bbs.chinaunix.net/thread-149723-1-1.html
- 易错点
- [abc]: 表示單一字符, 可為 a 或 b 或 c . (與 wildcard 之 [abc] 原理相同)
[^abc]: 表示單一字符, 不為 a 或 b 或 c 即可. (與 wildcard 之 [!abc] 原理相同)
* 匹配0或多个字符- 4. 易错点总结
- . . . .X C. . . .:共10个字符,前四个之后为XC
- 列出所有用户都有执行权限的文件或目录
- $ . ' " * [] ^ | () \ + ?ls -l | grep ...x..x..x
输出:
使用 ls -l 列出文件,并匹配目录
ls -l | grep ^d
列出文件a.conf中所有以common结尾的行
方法一:grep common$ a.conf
方法二:cat a.conf | grep common$
匹配所有空行:
^$
匹配只有一个字符的行:
^.$
01使用\屏蔽一个字符的特色含义
一般认为以下字符有特殊含义:
$ . ' " * [] ^ | () \ + ?
例如:
匹配包含^的行 \^
匹配包含 *.pa的行 \*\.pa
02 \{\}匹配出现的次数
pattern\{n\} 匹配模式出现n次。pattern\{n,\} 匹配模式出现最少n次。pattern\{n,m} 匹配模式出现n到m次之间,n , m为0 - 2 5 5中任意整数。
例子:
A出现2次,B结尾 A\{2\}B
A至少出现2次,B结尾 A\{2,\}B
A出现2-4次,B结尾 A\{2,4\}B
例子:
从以下抽取代码
1234XC90884523XX90010011XA99129931Xc3445
[0-9]\{4\}XX[0-9]\{4\} 匹配第2行
例子:
以^q开始的行 \^q
匹配单词zpp '"zpp"'
日期格式d d - m m - y y y y [0-9]\{2\}-[0-9]\{2\}-[0-9]\{4\}
匹配IP [ 0 - 9 ] \ { 3 \ } \ . [ 0 - 9 ] \ { 3 \ } \ . [ 0 - 9 ] \ { 3 \ } \ . [ 0 - 9 ] \ { 3 \ }
03 推荐《Linux与Unix shell编程指南》
http://wenku.baidu.com/link?url=R3rMRGvbXXMorWmPEv7uUqifUGMzkgWDpBhySK2SXZYHIvae1KsVXj_48FPF9iUlvBAzTITJROPy6Oy-L6fsNBzzKq9hTmiPvBoey0V8P3a
- m y f i l e文件中的内容:
- 结果:
0 0
- shell基础五:输入和输出/正则表达式
- 【转】shell基础五:输入和输出(ec…
- shell基础五:输入和输出(echo,read,cat,管道,tee,重定向等)
- shell基础五:输入和输出(echo,read,cat,管道,tee,重定向等)
- shell基础五:输入和输出(echo,read,cat,管道,tee,重定向等)
- shell基础五:输入和输出(echo,read,cat,管道,tee,重定向等)
- shell基础编程——输出和输入
- Shell学习---正则表达式基础
- Shell基础之-正则表达式
- Linux Shell 输入和输出
- shell的输入和输出
- Linux Shell 输入和输出
- Shell中的输入和输出
- Shell和正则表达式练习题
- shell sed 和正则表达式
- Shell通配符和正则表达式
- 第一部分 Shell基础编程——第三章 Shell输入和输出
- shell基础学习之正则表达式
- Combination Sum II
- 黑马程序员05——面向对象2
- POJ 1038 状压DP
- UVA 1347(POJ 2677) Tour(双调欧几里得旅行商问题)
- Unix:关于淘宝开源tsar(src)的makefile
- shell基础五:输入和输出/正则表达式
- MySQL and Python's MySQLdb
- 【最短路】 HDOJ 1317 XYZZY
- HBase全分布式环境搭建
- poj3180 The Cow Prom(强连通)
- 简单的大数模板
- ZOJ 1365
- 安卓UI横竖转换注意事项
- 黑马程序员06——内部类、包