shell文本处理-常用方法整理

1.替换文本中的字母:

echo `sed -i '1,5s/[a-z]//g' ./file`

输出结果:

file文件中的1到5行的所有字母都被替换为空字符

分析:

-i  表示直接处理文本

1,5s  表示文本的1到5行 (文本没有0行)

g  有g替换某行的每一个符合要求的字符,无g只替换第一个

1,5s/[a-z]//g         1到5行(s前不加数字表示所有行)/被替换字符/替换字符/(g全局替换,无g只替换第一个)

./file   文本路径

注意  ``不是单引号 是反引号  sed -i后的是单引号

 

2.在指定字符后增加文本内容:

cat ./test|sed 's/x:/&aaa/g'

输出结果:

x:aaa

分析:

x:  指定的字符

&aaa  &表示在x:后加上aaa &代表x:的位置

 

3.在指定字符串前增加文本内容:

cat ./test|sed 's/x:/aaa&/g'

输出结果:

aaax:

分析:

x: 指定的字符

aaa& &表示在x:前加上aaa &代表x:的位置

 

4.提取指定字符串:

echo "libgcc-4.8.5-4.h5.x86_64.rpm" | sed -r  's/libgcc-([0-9]+\.[0-9]+.*)\.rpm/\1/g'

输出结果:

4.8.5-4.h5.x86_64

匹配的内容为以4.8开头(包含4.8)-----------------结尾到.rpm之前的内容

分析:

-r  使用扩展正则表达式(如果不加-r会报错)

\1 反向引用前边匹配的组(就是匹配()里的内容)

+  匹配[0-9]的内容重复一次或多次

*  匹配[0-9]的内容0次或多次

\   转义字符

posted @ 2020-03-01 11:22  好吃不过饺子-机器人  阅读(461)  评论(0)    收藏  举报