Difference between revisions of "Linux Bible"
Jump to navigation
Jump to search
(→Var OP) |
(→Var OP) |
||
| Line 8: | Line 8: | ||
${var:n1} 截取变量var从n1开始的字符 | ${var:n1} 截取变量var从n1开始的字符 | ||
${var:n1:n2} 截取变量var从n1开始的n2个字符 | ${var:n1:n2} 截取变量var从n1开始的n2个字符 | ||
| − | ${var#substring} | + | ${var#substring} 从变量$string的开头, 删除最短匹配$substring的子串 |
| − | ${var##substring} | + | ${var##substring} 从变量$string的开头, 删除最长匹配$substring的子串 |
${var#*string} 从左向右截取第一个string后的字符串 | ${var#*string} 从左向右截取第一个string后的字符串 | ||
| − | ${var##*string} | + | ${var##*string} 从左向右截取最后一个string后的字符串 |
| − | ${var%substring} | + | ${var%substring} 从变量$string的结尾, 删除最短匹配$substring的子串 |
| − | ${var%%substring} | + | ${var%%substring} 从变量$string的结尾, 删除最长匹配$substring的子串 |
${var%string*} 从右向左截取第一个string后的字符串 | ${var%string*} 从右向左截取第一个string后的字符串 | ||
| − | ${var%%string*} | + | ${var%%string*} 从右向左截取最后一个string后的字符串 |
${string/substr/rplacemnt} 使用 $rplacemnt, 来代替第一个匹配的 $substr | ${string/substr/rplacemnt} 使用 $rplacemnt, 来代替第一个匹配的 $substr | ||
${string//substr/rplacemnt} 使用 $rplacemnt, 代替所有匹配的 $substr | ${string//substr/rplacemnt} 使用 $rplacemnt, 代替所有匹配的 $substr | ||
Revision as of 16:57, 14 January 2022
Contents
Bash
Var OP
${test##*/} 获取文件名
${test%/*} 获取目录名
${#var_name} $var_name 的字符串长度
${var:n1} 截取变量var从n1开始的字符
${var:n1:n2} 截取变量var从n1开始的n2个字符
${var#substring} 从变量$string的开头, 删除最短匹配$substring的子串
${var##substring} 从变量$string的开头, 删除最长匹配$substring的子串
${var#*string} 从左向右截取第一个string后的字符串
${var##*string} 从左向右截取最后一个string后的字符串
${var%substring} 从变量$string的结尾, 删除最短匹配$substring的子串
${var%%substring} 从变量$string的结尾, 删除最长匹配$substring的子串
${var%string*} 从右向左截取第一个string后的字符串
${var%%string*} 从右向左截取最后一个string后的字符串
${string/substr/rplacemnt} 使用 $rplacemnt, 来代替第一个匹配的 $substr
${string//substr/rplacemnt} 使用 $rplacemnt, 代替所有匹配的 $substr
${string/#substr/rplacemnt} 前缀匹配 $substring, 用 $rplacemnt 来代替匹配
${string/%substr/rplacemnt} 后缀匹配 $substring, 用 $rplacemnt 来代替匹配
Array
Loop Array
ls
sed
sed -n '/^-----BEGIN CERTIFICATE-----/,/^-----END CERTIFICATE-----$/p' server.crt sed -i "/^172.*/s/^172.*$/$netip/" "$xfile" sed -i "s/dpAclBlacklist/dpAclBlocklist/g" dpMgr/src/dpAclMgr.cpp
awk
计算文件第3列的和
awk '{ x += $3 } END { print x }' myfile.txt
tar
VS Code
${workspaceFolder}/**
${workspaceFolder}/../
/home/jim/projects/mdp-vpp/fp-vpp/build-vpp-data/vpp/src
/home/jim/projects/mdp-vpp/fp-vpp/build-vpp-data/vpp/build-root/install-vpp-native/external/include/dpdk/**
/home/jim/projects/mdp-vpp/fp-vpp/build-vpp-data/vpp/build-root/install-vpp-native/external/include/dpdk/**
/home/jim/projects/mdp-vpp/fp-vpp/build-vpp-data/vpp/build-root/build-vpp-native/vpp
/home/jim/projects/mdp-vpp/fp-vpp/build-vpp-data/vpp/build-root/build-vpp-native/vpp/include
/home/jim/projects/mdp-vpp/common/mdplib/log
/home/jim/projects/mdp-vpp/common/mdplib/lib
"${workspaceFolder}/**",
"${workspaceFolder}/../",
"${workspaceFolder}/../../../security/fastpath/dpdk",
"${workspaceFolder}/../../../slowpath/dpdk/inc",
"${workspaceFolder}/../../../../mmx/inc",
"/home/jim/projects/mdp-vpp/fp-vpp/build-vpp-data/vpp/src",
"/home/jim/projects/mdp-vpp/fp-vpp/build-vpp-data/vpp/build-root/install-vpp-native/external/include/dpdk/**",
"/home/jim/projects/mdp-vpp/fp-vpp/build-vpp-data/vpp/build-root/install-vpp-native/external/include/dpdk/**",
"/home/jim/projects/mdp-vpp/fp-vpp/build-vpp-data/vpp/build-root/build-vpp-native/vpp",
"/home/jim/projects/mdp-vpp/fp-vpp/build-vpp-data/vpp/build-root/build-vpp-native/vpp/include",
"/home/jim/projects/mdp-vpp/common/mdplib/log",
"/home/jim/projects/mdp-vpp/common/mdplib/lib",
"/home/jim/projects/mdp-vpp/common/mdplib/event"