Difference between revisions of "Linux Bible"

From Danbing
Jump to navigation Jump to search
Line 60: Line 60:
 
  计算文件第3列的和
 
  计算文件第3列的和
 
  awk '{ x += $3 } END { print x }' myfile.txt
 
  awk '{ x += $3 } END { print x }' myfile.txt
 +
awk -F, 'NF>1 {OFS="%";i=1; while(i<NF) {print $1,$i; i++}}' < input.txt
  
 
=== '''tar''' ===
 
=== '''tar''' ===

Revision as of 14:26, 9 April 2022

Bash

||, &&, <, >, =, ==, =~, -n, -z, -lt, -eq, -ne
<, >, = (字符串比较,双括号不需要转移) [ "${name}" \> "a" -o "${name}" \< "m" ]  [[ "${name}" > "a" && "${name}" < "m" ]]
"t=""abc123""
""$t"" == abc*  true (globabing 比较)
""$t"" == ""abc*""  false (字面比较)
[[ ""$t"" =~ [abc]+[123]+ ]] true (正则表达式比较)
""$t"" =~ ""abc*""  false (字面比较)
r=""a b+""
""a bbb"" =~ $r  true"

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 来代替匹配


\[\e[F;Bm\]........\[\e[0m\]					
/etc/DIR_COLORS => ~/.dir_colors					
F	B				
30	40	黑色			
31	41	红色			
32	42	绿色			
33	43	黄色			
34	44	蓝色			
35	45	紫红色			
36	46	青蓝色			
37	47	白色			
diff <(wget -o - url1) <(wget -o - url2)

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
awk -F, 'NF>1 {OFS="%";i=1; while(i<NF) {print $1,$i; i++}}' < input.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"