码迷,mamicode.com
首页 > 系统相关 > 详细

【Shell】shell截取字符串方式(cut、awk、sed命令)

时间:2018-12-04 22:35:30      阅读:338      评论:0      收藏:0      [点我收藏+]

标签:passwd   cut   技术   awk   否则   使用   str   color   指定   

1.cut

-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。

-d:自定义分隔符,默认为制表符。

-f:与-d一起使用,指定显示哪个区域。

-n:取消分割多字节字符。仅和-b标志一起使用。如果字符的最后一个字节落在由-b标志的List参数指示的范围之内,该字符将被写出;否则,该字符将被排除。

 

-b

.eg1:

echo"123abc"|cut -b 2,5

先输出123abc
然后调用cut,即剪切字符串中的第2和第5个字节。
输出为2b

.eg2:

 echo "123456789abcdefghjklmnopq" | cut -b 11-14

cut掉11-14位置的字符

输出为bcde

技术分享图片

-c

用法示例输出/etc/passwd文件每一行的前4个字符$ sudo cut -c 1-4 /etc/passwd

技术分享图片      取完之后     技术分享图片

 

-d

 cut命令用于列提取,默认分隔符是tab键。

选项:-d指定分隔符,-f指定提取第几列

eg: 

以%作为分隔符 输出第一个%前的区域1的东西,输出区域2的东西       

root@ROUTER:~# echo "CPU:  busy 14%  (system=10% user=3% nice=0% idle=85%)" | cut -d \% -f 1
CPU:  busy 14
root@ROUTER:~# echo "CPU:  busy 14%  (system=10% user=3% nice=0% idle=85%)" | cut -d \% -f 2
  (system=10
root@ROUTER:~# echo "CPU:  busy 14%  (system=10% user=3% nice=0% idle=85%)" | cut -b 11-14 | cut -d \% -f 1
 14
root@ROUTER:~# echo "CPU:  busy 14%  (system=10% user=3% nice=0% idle=85%)" | cut -b 11-14 
 14%

 

 

2.sed

 eg1:

sed s/[0-9]//g

去除文本中的所有数字

[0-9]匹配一个数字,
s/A/B/ 将A替换为B
g表示全局替换为空格

 

eg2:

 

 

 

 

【Shell】shell截取字符串方式(cut、awk、sed命令)

标签:passwd   cut   技术   awk   否则   使用   str   color   指定   

原文地址:https://www.cnblogs.com/chenxiaomeng/p/10066821.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!