今天在群里看到一个讨论,对自己很有帮助,就记录下来。
针对一个字符串 1/2/3/4 提取 数字 3 (方法很多种,欢迎大家补充)
echo ‘1/2/3/4‘ | cut -b 5
cut -b 只输出在byte-list区间的bytes,每个TAB和backspace都占1byte
echo ‘1/2/3/4‘ | cut -d / -f 3
cut -d 制定域分隔符 -f 第三个域
echo ‘1/2/3/4‘ | awk -F / ‘{print $3}‘
awk -F 指定域分隔符 print $3 打印第三个域
echo ‘1/2/3/4‘ | sed ‘s#.*/\(.*\)/\(.*\)/.*#\2#‘
echo ‘1/2/3/4‘ | sed -r ‘s#.*/(.*)/(.*)/.*#\2#‘
sed替换就是针对含有括号的内容 \1 表示第一个括号 (.*) \2 表示第二个括号(.*)
sed -r 表示扩展的正则表达式 第一个括号(.*)相当于2 第二个括号相当于3
这条命令实现的就是把1/2/3/4 替换成 3
a=‘1/2/3/4‘ echo ${a:4:1}
${a:4:1} 表示提取a字符中 从左边开始第四个字节右边的连续一个字节
本文出自 “慢慢来” 博客,请务必保留此出处http://bookzjw.blog.51cto.com/4122779/1358476
原文:http://bookzjw.blog.51cto.com/4122779/1358476