1.Shell 截取
例子:str=”123456789-zxcvbnm-asdfg”
| 格式 | 示例 /echo ${str} | 结果 | 说明 |
|---|---|---|---|
| ${str: start :length} | ${str:2:5} | 34567 | 从str字符串的左边第 start 个字符开始,向右截取 length 个字符。 |
| ${str: start} | ${str:2:5} | 3456789-zxcvbnm-asdfg | 从str字符串的左边第 start 个字符开始截取,直到最后。 |
| ${str:0-start:length} | ${str:0-10:5} | vbnm- | 从str字符串的右边第 start 个字符开始,向右截取 length 个字符。 |
| ${str: 0-start} | ${str:0-5} | asdfg | 从str字符串的右边第 start 个字符开始截取,直到最后 |
| ${str#*chars} | ${str#*-} | zxcvbnm-asdfg | 从str字符串第一次出现 chars 的位置开始,截取 chars 右边的所有字符。 |
| ${str##*chars} | ${str##*-} | asdfg | 从str字符串最后一次出现 chars 的位置开始,截取 chars 右边的所有字符。 |
| ${str%*chars} | ${str%-*} | 123456789-zxcvbnm | 从str字符串第一次出现 chars 的位置开始,截取 chars 左边的所有字符。 |
| ${str%%*chars} | ${str%%-*} | 123456789 | 从str字符串最后一次出现 chars 的位置开始,截取 chars 左边的所有字符。 |
2.Cut 截取
说明:用于显示每行从开头算起 num1 到 num2 的文字
Cut语法
cut [-bn] [file]#以字节为单位进行分割,如:1|1-4|2,3,5cut [-c] [file]#以字符为单位进行分割cut [-df] [file]#以自定义分隔符进行分割,默认为制表符
例子
模板:1.txt
NAME CPU(cores) MEMORY(bytes)nginx-7f688c67-25n6h 1m 5Minginx-7f688c67-9dq8z 1m 5Minginx-7f688c67-kxcsv 1m 5Mi
cut -b 1-34 1.txt
NAME CPU(cores)
nginx-7f688c67-25n6h 1m
nginx-7f688c67-9dq8z 1m
nginx-7f688c67-kxcsv 1m
cut -c 1,3-7 1.txt
NME
ninx-7
ninx-7
ninx-7
cut -d '-' -f 1,2 1.txt
NAME CPU(cores) MEMORY(bytes)
nginx-7f688c67
nginx-7f688c67
nginx-7f688c67
