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的一整行