本文长期更新,只为记录各种实用的linux命令以及shell编程常用操作

字符串操作

判断字符串是否含有特定子串

if [[ "$USER" =~ "roo" ]]; then # 右方为子串
    echo "yes"
fi

截取子串

  • 使用${str:start:length},表示从start开始,从左向右截取length长的子串,start从0开始
  • 使用${str:0-start:length},表示从右边的start开始从左向右截取length长的子串,start从1开始
    length缺省则表示一直截取到最后,length为负则表示截取到指定位置,此时length只能从-1开始,表示倒数第2个字符,start缺省值为0
str="0123456789"
echo ${str::3} # 获取前3个字符,输出012
echo ${str:0-3} # 获取后3个字符,输出789
echo ${str:1:-1}  # 获取第2个字符到倒数第2个字符之间的子串,效果即删除开头结尾各一个字符,输出12345678
str="https://www.sfnote.com/code"
echo ${str#*/} # 删除从左往右的第一个/之前的所有字符,包括/,输出/www.sfnote.com/code
echo ${str##*/} # 删除从左往右的最后一个/之前的所有字符,包括/,输出code

echo ${str%/*} # 删除从右往左的第一个/之前的所有字符,包括/,输出https://www.sfnote.com
echo ${str%%/*} # 删除从右往左的最后一个/之前的所有字符,包括/,输出https:

字符串查找替换

str="https://www.sfnote.com/code"
echo ${str/w/s} # 替换第一个w
echo ${str//w/s} # 替换全部w,s不写则表示删除全部w

文件管理

lsattr,chattr改变文件属性

chattr +i filename # 使文件无法被更改和删除
chattr -i filename # 恢复文件属性
chattr +a filename # 只允许追加,适用于日志文件
最后修改:2022 年 06 月 11 日
如果觉得我的文章对你有用,请随意赞赏