shell下分割字符串以及截取字符串

常用的截取字符串的命令,可以通过awk或cut来完成

cut是以每一行为一个处理对象的,这种机制和sed是一样的。(关于sed的入门文章将在近期发布)
 cut一般以什么为依据呢? 也就是说,我怎么告诉cut我想定位到的剪切内容呢?
cut命令主要是接受三个定位方法:
第一,字节(bytes),用选项-b
第二,字符(characters),用选项-c
第三,域(fields),用选项-f

string="20141129235506,普通用户,www.baidu.com,android,001,android-1152x1920"

如何读取最后一列:android-1152x1920
1. echo $string| awk -F "," '{print $NF}'
2. echo $string | awk '{split($0,array,",");print array[6]}'
3. echo $string | cut -d "," -f6
其中-d代表用什么进行分割,-f6代表要第6个结果
另外还有一个常用的参数是-c,用法为 -cx-y 这个意思是取得第x至第y个字符串 
echo “abcdefg” | cut -c3-6 输出为 def 


如何读取  android-1152x1920 中的 1152x1920
1. echo $string| awk -F "," '{print $NF}' | awk -F "-" '{print $NF}'
2. echo $string | cut -d "," -f6 | cut -c 9-   
获得 android-1152x1920后,再取从第9个字符到最后的字符
 
格式化列 
 
column –t   不过似乎对tab 和空格混合的情况无法处理 
 
string=/home/bozo/daily-journal.txt 
 
截取指定字符串
echo | awk '{print substr("'${string}'",2,4)}' 
 
// 从第2个字符开始获取4个字符   结果为:home 
 
计算字符串长度 
 
echo | awk '{print length("'${string}'")}' 
 
// 结果为: 29 
 
字符串大小写转换 
 
echo | awk '{ print toupper("test"), tolower("TEST") }' 
 
结果为: TEST  test

你可能感兴趣的:(shell)