1.将字符串中的 , 变成","
str1="abc,def,ghi,jkl"
str2=\"${str1/,/\",\"}\" #只会把第一个 , 变为","
echo $str2
str3=\"${str1//,/\",\"}\" #所有的, 变为","
echo $str3
2.将文本文件的回车换行去掉 转换为其他字符
# cat 1.txt
123
456
789
# str=`sed ':a;N;$!ba;s/\n/n/g' 1.txt` #将回车换行 转换为 n
# echo $str
123n456n789
3.以某个字符切割 获取最后一段
# str="ab.cd.ef.gh"
# res=`echo $str | awk -F"." '{print $NF}'`
# echo $res
gh
4.在文件中替换字符串
function replace_str(){ #
old_str="$1"
new_str="$2"
file="$3"
sed -i "s#$old_str#$new_str#g" $file
}
5.指定行 内容替换
function replace_str_in_line(){
old_str="$1"
new_str="$2"
line="$3"
file="$4"
sed -i "${line}s#${old_str}#${new_str}#g" $file
}
6.根据字符串 获取行号
function get_line_by_str(){
str="$1"
file="$2"
sed -n -e "/$str/=" $file
}
7.删除指定行
function del_str_by_line(){
line="$1"
file="$2"
sed -i "${line}d" $file
}
8.在指定行后面加字符串
function add_str_after_line(){
str="$1"
line="$2"
file="$3"
sed -i "N;${line}a${str}" $file
}
9在指定字符串前面加字符串
function add_str_before_line(){
str="$1"
line="$2"
file="$3"
sed -i "N;${line}i${str}" $file
}
10.两个字符串 去除其中包含的字符串 例如:cluster=“192.168.19.21\n192.168.19.22\n192.168.19.23” ip=“192.168.19.21” 去除cluster中的ip
function str_distinct(){
long_str="$1"
short_str="$2"
str=""
for i in `echo -e "$cluster"`
do
if [ "$i" != "$ip" ];then
tmp="${i},"
str="$str""$tmp"
fi
done
str=`echo "$str"|sed 's/.$//'`
echo $str
}
11.字符串去掉最后一个字符
# str=abcdef
# str=`echo $str|sed 's/.$//'`
# echo $str
abcde
12.判断虚机的端口号是否开启
res=`echo ""| telnet 192.168.19.33 22 2>/dev/null| grep "\^]"|wc -l` #返回值1 表示开启 0表示未开启