常用的截取字符串的命令,可以通過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