有人可以解释以下命令的语法吗?我知道他们在做什么,但很难掌握语法,
find / -type f -exec grep -H 'text-to-find-here' {} \;
cat access.log | cut -d '"' -f3 | cut -d ' ' -f2 | sort | uniq -c | sort -r
sudo cat error_log.20150205 | grep mpmstat | grep -v "," | cut -d: -f4- | grep -v ":" | sed -e's/rdy//g' | sed -e 's/bsy\|wr\|ka\|log\|dns\|cls\|rd/,/g
答案1
find
/
→ 从根目录搜索
-type f
→ 只选择文件 ( f
)
-exec ....{} \;
→ 执行命令,将找到的(文件)名称{}
一一 插入grep -H 'test-to-find
→ 对找到的每个文件执行此 grepfind
cat access.log |
→ 将文件输出到 stdout 并通过管道输送到下一个命令
cut -d '"' -f3 |
→ 分割行"
并仅输出字段 3,通过管道输送到下一个命令
cut -d ' ' -f2 |
→ 根据空格剪切字段 3 并获取第二个字段,通过管道输送到下一个
sort | uniq | sort -r
→ 对输出进行排序,删除重复项,反向排序order ( -r
) (最后一个可以用一个命令在某些版本中
完成,第一个是多余的,你可以写)sort
sort -ur
cat
< access.log cut -d '"' | ....
sudo cat error_log.20150205 |
→ 使用 root 权限执行 cat(文件的访问权限?)
grep mpmstat |
→ 只选择带有单词的行mpmstat
grep -v "," |
→ 取消选择 ( -v
) 任何带有逗号的行
cut -d: -f4- |
→ 根据 ':' 作为分隔符拆分为多个字段,取第 4 个及以上的字段。
grep -v ":" |
→ 抑制带有 ':' 的行(不太可能出现,因为这是之前的分割字符)
sed -e's/rdy//g' |
→在每行 ( )上替换s
该序列 →用逗号替换各种替代项 ( wr \|`)rdy
g
sed -e 's/bsy\|wr\|ka\|log\|dns\|cls\|rd/,/g
bsy,
, etc, separated by