分割字符串
OLD_IFS=$IFS
IFS=" "
read arg1 arg2 arg3 <<< "$args"
IFS=$OLD_IFS
去掉首尾空格
echo " k1=v1 " | awk '{$1=$1; print}'
k1=v1
字符串包含、開頭、結尾
if [[ "$text" == "startsWith"* ]]; then
elif [[ "$text" == *"endWith" ]]; then
elif [[ "$text" == *"value"* ]]; then
fi
輸出匹配內容行號
cat $file | grep -n $text | awk -F ':' '{print $1}'
數組元素動態(tài)添加
array=()
array+=( a1 )
array+=( a2 )
sed替換內容包含特殊字符
# 用|號當分隔符
sed -i "/^${pkey}=/ s|.*|${pkey}=${pval}|" ${prop_path}
刪除匹配內容行
sed -i "/^key=/d" $file
在匹配內容的行上面插入一行
sed -i "${mask}i${line}" $path
指定行數內容替換
sed -i "${ln}c${line}" $path
刪除從某行到某行內容
sed -i "${ln},${cl}d" $path
字符串字符轉義 / 成 /
echo ${dir} | sed 's/\//\\\//g'
將字符串頭幾個字符替換
# /system/etc/test.prop -> /data/etc/test.prop
echo "/system/etc/test.prop" | sed "s/^.\{8\}/\/data\//")"
參數切割,讀取第5個參數后面參數
echo "$@" | cut -d ' ' -f 6-"
字符串,號換空格
data_value="$(echo ${data_value} | sed 's/,/ /g')"
讀取第N行內容
nline="$(sed -n "${cl}p" $path | awk '{$1=$1; print}')"
簡單 if else 合并
[ "open" = "${STATE}" ] && $(set_root 1) || $(set_root 0)
取出文件名
# /data/local/test.png 取出 test
basename $/data/local/test.png