标签:
grep
1.找到本目录及子目录下含有该字符串的文件: grep "text" . -R -n
2. grep -i 忽略大小写
3.grep "main()" . -r --include *.
{c,cpp}
只返回后缀为.c .cpp的文件
4.有时候需要用xargs来切分输入参数,xargs默认是按照空格切分,但是比如有时候文件名作为参数,一个文件名中含有空格,导致该文件被切分成2个。此时采用
grep "test" file* -lZ | xargs -0 rm note: -lZ指的是在每个参数后添加一个 0 字符来辨别每个参数结束。 xargs -0 用来读取。
cut
1.cut -f2,4 student_data.txt 截取student_data.txt文件的第二个第四列
2.cut -c1-5 range_fields.txt 截取文件的前5个字符, -c代表字符 -b代表字节 -f代表自定义的域
sed
介绍: stream editor。一款非常强大的文本处理工具,主要用来处理文本替换。
1.使用正则来替换文本
sed ‘s/pattern/repalce_string/‘ file 该指令只替换第一个匹配的字符串,
sed ‘s/pattern/repalce_string/g‘ file 匹配所有出现的字符串
2.清除空行
sed ‘/$/d‘ file 空行可以采用$来匹配。 /d指的是删除
3.正则的一些匹配用法
echo this is an example | sed ‘s/\w+/[&]/g‘ 结果是:[this] [is] [an] [example]
echo seven EIGHT | sed ‘s/([a-z]+) ([A-Z]+)/\2 \1/‘ 结果是: EIGHT seven
4.双引号
$ text=hello
$ echo hello world | sed "s/$text/HELLO/"
HELLO world
双引号可以表示变量
awk
简介: awk是用来处理数据流的工具,它可以操作行和列,它支持很多内置的功能,例如:数组,函数。最大的特点就是灵活。
awk命令的格式:awk ‘ BEGIN
{; print "start"; }
pattern
{ commands }
END
{ print "end" }
file (后面的dile代表输入文件)
awk命令执行的顺序:
首先执行begin块中的代码,
然后依次读取文件或者stdin中的一行数据,执行中间代码块中的代码。一直重复直到输入结束。(如果没有中间块,默认的为
{print}
)
最后执行end代码块中的内容。
三个代码块都是可有可无的,optional。
awk的内置函数和变量:
NR:当前读取的行数
NF:field的个数
$0:当前行的内容
$1:当前行的第一个field的值
$2:当前行第二个field的值
$ echo -e "line1 f2 f3\nline2 f4 f5\nline3 f6 f7" | \
awk ‘{
print "Line no:"NR",No of fields:"NF, "$0="$0, "$1="$1,"$2="$2,"$3="$3
}‘
Line no:1,No of fields:3 $0=line1 f2 f3 $1=line1 $2=f2 $3=f3
Line no:2,No of fields:3 $0=line2 f4 f5 $1=line2 $2=f4 $3=f5
Line no:3,No of fields:3 $0=line3 f6 f7 $1=line3 $2=f6 $3=f7
实例:将第一列的数字求和
$ seq 5 | awk ‘BEGIN
{ sum=0; print "Summation:" }
{ print $1"+"; sum+=$1 }
END
{ print "=="; print sum }
‘
Summation:
1+
2+
3+
4+
5+
==
15
向awl传递一个外部的参数:
$ VAR=10000
$ echo | awk -v VARIABLE=$VAR ‘
{ print VARIABLE }
‘
10000
也可以这么写:
$ var1="Variable1" ; var2="Variable2"
$ echo | awk ‘
{ print v1,v2 }
‘ v1=$var1 v2=$var2
Variable1 Variable2
getline函数: 获取文件的下一行
过滤器:
$ awk ‘NR < 5‘ # first four lines
$ awk ‘NR==1,NR==4‘ #First four lines
$ awk ‘/linux/‘ # Lines containing the pattern linux (we can specify regex)
$ awk ‘!/linux/‘ # Lines not containing the pattern linux
awk自身支持的函数:
length(string) : This returns the string length.
index(string, search_string) : This returns the position at which
search_string is found in the string.
split(string, array, delimiter) : This stores the list of strings generated
by using the delimiter in the array.
substr(string, start-position, end-position) : This returns the
substring created from the string by using the start and end character offsets.
sub(regex, replacement_str, string) : This replaces the first occurring
regular expression match from the string with replacment_str .
gsub(regex, replacment_str, string) : This is similar to sub() , but it
replaces every regular expression match.
match(regex, string) : This returns the result of whether a regular expression
(regex) match is found in the string or not. It returns a non-zero output if a match is
found, otherwise it returns zero. Two special variables are associated with match() .
They are RSTART and RLENGTH . The RSTART variable contains the position at which
the regular expression match starts. The RLENGTH variable contains the length of the
string matched by the regular expression.
标签:
原文地址:http://www.cnblogs.com/quan-qunar/p/4680953.html