Skip to content

Instantly share code, notes, and snippets.

@Chunlin-Li
Created January 7, 2016 11:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Chunlin-Li/0ac0741954f1af461e8c to your computer and use it in GitHub Desktop.
Save Chunlin-Li/0ac0741954f1af461e8c to your computer and use it in GitHub Desktop.
shell 中字符串的操作

str -> shell 变量

获取字符串长度

${#str}  
expr length $str

某个字符在 str 的 index (从1开始)

expr index $str [char]

截取子串

# 从 start 开始(包含)截取到结尾
${str:start}    
# 从 start 开始(包含)截取 length 个字符
${str:start:length} 
# 使用负数可以从尾部截取

expr substr $str [position] [length]

删除从左侧开始的最小匹配子串

# substring 可以是正则表达式
${str#substring}

删除从左侧开始的最大匹配子串

# substring 可以是正则表达式
${str##substring}

删除从右侧开始的最小匹配子串

# substring 可以是正则表达式
${str%substring}

删除从右侧开始的最大匹配子串

# substring 可以是正则表达式
${str%%substring}

子串替换

# 只替换第一个
${str/substring/replacement}
# 替换所有
${str//substring/replacement}
# 从左侧匹配替换一个
${string/#substring/replacement}
# 从右侧匹配替换一个
${string/%substring/replacement}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment