常用的截取字符串的命令,可以通过awk或cut来完成
cut是以每一行为一个处理对象的,这种机制和sed是一样的。(关于sed的入门文章将在近期发布)
cut一般以什么为依据呢? 也就是说,我怎么告诉cut我想定位到的剪切内容呢?
cut命令主要是接受三个定位方法:
第一,字节(bytes),用选项-b
第二,字符(characters),用选项-c
第三,域(fields),用选项-f
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]}'
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