跳至主要內容

字符串与正则

chanchaw小于 1 分钟linuxcentos

文件名移除空格

简单方法移除空格

#!/bin/bash
aa="jy0101 cc.mp4"
file=${aa// /}
echo "移除空格后的文件名:${file}"

函数中移除空格

#!/bin/bash
# 以字符串中的空格作为间隔构建数组并返回
function getArr(){
  echo "功能函数传入参数数量:$#"
  echo "传入参数是:$1"

  local file=""
  for item in $@; do
    file="${file}${item}"
  done

  echo ${file}
}

getArr "jy0101 cc.mp4"

解析文件名字符串

#!/bin/bash
parseFileNameArr(){
  # 带有后缀名的文件名,没有路径
  local fileName=$1
  fileNameArr=(${fileName//./ })

  len=${#fileNameArr[*]}
  fileNameOnlyPre=""
  for ((i=0;i<${len}-1;i++)); do
    fileNameOnlyPre="${fileNameOnlyPre}${fileNameArr[${i}]}."
  done

  lenPre=${#fileNameOnlyPre}
  fileNameOnlyPre=${fileNameOnlyPre:0:lenPre-1}

  echo "纯文件名:${fileNameOnlyPre}"
  echo "后缀名:${fileNameArr[${len}-1]}"
}

parseFileNameArr "jy0101.ff.mp4"

拼接字符串

#!/bin/bash
name="Shell"
url="http://c.biancheng.net/shell/"

str1=$name$url  #中间不能有空格
str2="$name $url"  #如果被双引号包围,那么中间可以有空格
str3=$name": "$url  #中间可以出现别的字符串
str4="$name: $url"  #这样写也可以
str5="${name}Script: ${url}index.html"  #这个时候需要给变量名加上大括号

echo $str1
echo $str2
echo $str3
echo $str4
echo $str5