Document the learning process of linux.
find 搜索文件
find -name "name.py"
在当前路径下搜索
find / -name "name.py"
全局路径下搜索
find ~ -name "name*"
模糊搜索
find ~ -iname "name*"
忽略大小写搜索
grep 搜索字符串
grep "moo" target*
查找含target名字的文件中含moo的字符串
grep "moo"
等待输入
管道操作符
前者输入作为后者的输出
find ~ | grep "name"
等同于上边find的第三条
grep 'partial\[true\]' error.log
在error.log文件中查找 partial[true] 的情况 \用于转义
grep 'partial\[true\]' error.log | grep -o 'engine\[[0-9a-z]*\]'
加筛选条件 输出engine[包含数字和字母] 的引擎
grep 'partial\[true\]' error.log | grep -o 'engine\[[0-9a-z]*\]' | awk '{enginearr[$1]++}END{for(i in enginearr)print i "\t" enginearr[i]}'
再加筛选条件 输出两列 一列是engine[数字字母] 另一列是统计出来的数字
awk 对文件内容做统计
awk '{print $1,$4}' netstat.txt
切片取出第一列和第四列的内容
awk '$1=="tcp" && $2=1 {print $0}' netstat.txt
取出第一列值是tcp 第二列值是1 打印出所有信息
awk '($1=="tcp" && $2=1) || NR=1 {print $0}' netstat.txt
加筛选条件 显示每一列的列名
awk -F "," '{print $2}' test.txt
分割一张只有两列 中间以逗号做分隔符的表 取第二列
sed 批量替换文本内容
sed -i 's/^Str/String/' replace.java
将Str为开头的替换成String
sed -i 's/\.$/\;/' replace.java
将点为结尾的替换成分号
sed -i 's/Jack/me/' replace.java
将Jack(每行第一次出现那个)替换成me
sed -i 's/Jack/me/g' replace.java
将Jack(所有)替换成me
sed -i '/^ *$/d' replace.java
去掉所有的空格从头到尾(即去掉整个空行)
sed -i '/Integer/d' replace.java
删掉包含Integer的一整行