shell专题

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表示未开启

猜你喜欢

转载自blog.csdn.net/sun_xuegang/article/details/86478310
今日推荐