分割字符串
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}'
数组元素动态添加
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