sed命令的使用
语法
sed[-n] ‘editing command’ [file…]
sed[-n] –e ‘editing command’ [file…]
sed[-n] –f scripting-file … [file…]
-e ‘editing command’:将editingcommand使用在输入数据上。当有多个命令需要使用时,就必须使用-e了
-f script-file:从script-file中读取编辑命令。当有多个命令需要执行时,此选项相当有用。
-n:不是每个最后已修改结果行都正常打印,而是显示以p指定的行
若无-e或-f选项,sed会将第一个参数看作是要使用的editing command.
editing command的几种形式
1、s分隔符原始文本分隔符 替换文本 分隔符
例如s;/home/tolstoy/;/home/lt/;表示将/home/tolstoy替换成/home/lt
2、s分隔符原始文本分隔符 &替换文本分隔符
如s;\(/home\)/tolstoy/;&\1/lt/;表示将/home/tolstoy替换成/home/tolstoy//home/lt
3、s分隔符原始文本分隔符 替换文本 分隔符 g
如echo a b c abc | sed ‘s/a/A/’表示将’a b c abc’中4、所有的a替换成A
4、/模式/ s 分隔符原始文本分隔符 替换文本 分隔符
表示针对匹配模式的行作处理
5、sed –n ’10,42p’foo.xml表示打印foo.xml的第10到42行的数据
6、sed ‘/foo/,/bar/s/baz/quux/g’表示从含有foo的行开始,再匹配是否有bar的行,再将匹配后的结果中,有baz的全换成quux
7、sed ‘/used/! s/new/used/g’表示将没有used的每个行里所有new替换成used
8、sed '/used/!d'表示把不匹配的删除
cut的使用
语法
cut–c list [file…]
cut–f list [-d delim] [file…]
-c list:以字符为主,执行剪下的操作。List为字符编号或一段范围的列表(以逗点隔开),例如1,3,5-12,42
-d delim:通过-f选项,使用delim作为定界符。默认的定界符为制表字符
-f list:以字段为主,作剪下的操作。list字段编号或一段范围的列表(以逗号分隔)
awk命令的使用
语法为
awk‘program’ [file…]
awk读取命令行上所指定的各个文件,一次读取一条记录,再针对第一行,应用程序所指定的命令。awk程序基本架构为
pattern{action}
pattern可以是任何表达式,但是在单命令行程序里,通常是由斜杠括起来的ERE。action为任意的awk语句,但是在单命令行程序时,通常是一个print语句
pattern和action都能省略。省略pattern,则会对每一条输入记录执行action,省略action则等同于{print},将显示整条记录
awk设计的重点在字段与记录上:awk读取输入记录,然后自动将各个记录切分成字段,将第条记录内的字段数目,存储到内建变量NF。默认以空白分隔字段,如空格与制表字符。
-
设置字段分隔符
-F选项修改字段分隔符,会自动设置FS变量
2、起始与清除
BEGIN与END,提供awk程序起始与清除操作。