常用命令
- sed命令
sed可以对字符串进行删除、拼接等操作
- cut命令
对单个字符截取,若多个字符,就需要awk cut -f 1 -d "/"
截取
${varible:n1:n2}:截取变量varible从n1开始的n2个字符,组成一个子字符串。 $ EXCLAIM=cowabunga $ echo ${EXCLAIM:0:3}
长度
${#string} $string的长度
比较
[[ "a.txt" == a* ]] # 逻辑真 (pattern matching) [[ "a.txt" =~ .*\.txt ]] # 逻辑真 (regex matching) [[ "abc" == "abc" ]] # 逻辑真 (string comparision) [[ "11" < "2" ]] # 逻辑真 (string comparision), 按ascii值比较
替换
- vi/vim 中可以使用 :s 命令来替换字符串
说明字母g代表某一行的所有匹配
- :s/well/good/ 替换当前行第一个 well 为 good
- :s/well/good/g 替换当前行所有 well 为 good:n,$s/well/good/ 替换第 n 行开始到最后一行中每一行的第一个 well 为 good
- :n,$s/well/good/g 替换第 n 行开始到最后一行中每一行所有 well 为 good
- n 为数字,若 n 为 .,表示从当前行开始到最后一行
- :%s/well/good/(等同于 :g/well/s//good/) 替换每一行的第一个 well 为 good
- :%s/well/good/g(等同于 :g/well/s//good/g) 替换每一行中所有 well 为 good:可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
- :s#well/#good/# 替换当前行第一个 well/ 为 good/:%s#/usr/bin#/bin#g 可以把文件中所有路径/usr/bin换成/bin
- sed命令下批量替换文件内容
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 文件名
-i 表示inplace edit,就地修改文件
-r 表示搜索子目录
- l 表示输出匹配的文件名
s表示替换,d表示删除
示例:sed -i "s/shan/hua/g" lishan.txt
把当前目录下lishan.txt里的shan都替换为hua