<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Find_xargs_grep%E6%9F%A5%E6%89%BE%E6%96%87%E4%BB%B6%E5%8F%8A%E6%96%87%E4%BB%B6%E5%86%85%E5%AE%B9</id>
	<title>Find xargs grep查找文件及文件内容 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Find_xargs_grep%E6%9F%A5%E6%89%BE%E6%96%87%E4%BB%B6%E5%8F%8A%E6%96%87%E4%BB%B6%E5%86%85%E5%AE%B9"/>
	<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Find_xargs_grep%E6%9F%A5%E6%89%BE%E6%96%87%E4%BB%B6%E5%8F%8A%E6%96%87%E4%BB%B6%E5%86%85%E5%AE%B9&amp;action=history"/>
	<updated>2026-04-20T13:20:58Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.linuxsa.org/index.php?title=Find_xargs_grep%E6%9F%A5%E6%89%BE%E6%96%87%E4%BB%B6%E5%8F%8A%E6%96%87%E4%BB%B6%E5%86%85%E5%AE%B9&amp;diff=382&amp;oldid=prev</id>
		<title>Evan：​/* eg */</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Find_xargs_grep%E6%9F%A5%E6%89%BE%E6%96%87%E4%BB%B6%E5%8F%8A%E6%96%87%E4%BB%B6%E5%86%85%E5%AE%B9&amp;diff=382&amp;oldid=prev"/>
		<updated>2022-11-10T07:55:00Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;eg&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==linux下使用find xargs grep查找文件及文件内容==&lt;br /&gt;
&lt;br /&gt;
 find   /data/www  -name &amp;#039;*.sh&amp;#039; #查找 /data/www下面的.sh文件&lt;br /&gt;
&lt;br /&gt;
 find /etc  -name  php-fpm.conf&lt;br /&gt;
&lt;br /&gt;
 cat  /etc/opt/remi/php74/php-fpm.conf&lt;br /&gt;
&lt;br /&gt;
==eg == &lt;br /&gt;
&lt;br /&gt;
find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;&lt;br /&gt;
&lt;br /&gt;
在当前目录查看包含内容为 RedisConnRef的文件 ,记得 -name 后来要加  &amp;quot; &amp;quot;&lt;br /&gt;
#转义记得 \&lt;br /&gt;
 find ./ -name &amp;quot;*&amp;quot; | xargs grep &amp;quot;RedisConnRef&amp;quot;&lt;br /&gt;
 find ./ -name &amp;quot;.env&amp;quot; | xargs grep &amp;quot;RedisConnRef&amp;quot;&lt;br /&gt;
 find  ./ -name FaceRecognize_IMAGECHECK.* | xargs  grep -ri &amp;#039;检测失败&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== other==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1，在某个路径下查文件。&lt;br /&gt;
在/etc下查找“*.log”的文件&lt;br /&gt;
find /etc -name “*.log”&lt;br /&gt;
2，扩展，列出某个路径下所有文件，包括子目录。&lt;br /&gt;
find /etc -name “*”&lt;br /&gt;
3，在某个路径下查找所有包含“hello abcserver”字符串的文件。&lt;br /&gt;
&lt;br /&gt;
find / -name &amp;quot;*&amp;quot;| xargs grep  &amp;quot;hello abcserve&amp;quot;&lt;br /&gt;
#find /etc -name “*” | xargs grep “hello abcserver” #这个格式有问题&lt;br /&gt;
或者find /etc -name “*” | xargs grep “hello abcserver” &amp;gt; ./cqtest.txt&lt;br /&gt;
4，网上摘抄的几个和查找文件或文件内容相关的命令详说：&lt;br /&gt;
正则表达式&lt;br /&gt;
\分别表示单词的开始和结束&lt;br /&gt;
ex: \ 以T或者t开头，om结尾的单词&lt;br /&gt;
正则表达式的元字符集：&lt;br /&gt;
1) ^行首 /^love/ 以love开头的行；&lt;br /&gt;
2) $行尾 /love$/ 以love结尾的行；&lt;br /&gt;
3) . /l..e/ 匹配所有这样的行，字母l后面紧跟任意两个字符然后是e的行&lt;br /&gt;
4) * 重复0次或者任意多次前面字符&lt;br /&gt;
5) [x-y] 字符范围&lt;br /&gt;
6) [^x-y] 排除字符范围&lt;br /&gt;
7) \ 转义字符&lt;br /&gt;
 \ 界定单词的开头和结尾&lt;br /&gt;
9) \( \) 标记后面用到的匹配字符 \(love\)able \1er=loveable lover&lt;br /&gt;
10) x\{m,n\} 重复字符x至少m此，至多n次&lt;br /&gt;
—————————————————————————&lt;br /&gt;
—————————————————————————&lt;br /&gt;
grep家族&lt;br /&gt;
RE–regular expression; g: global; p: print&lt;br /&gt;
出了上面10种元字符集，grep还支持下面的RE&lt;br /&gt;
\w 字母或者数字&lt;br /&gt;
\W 非单词字符（标点符号）&lt;br /&gt;
+ 重复一个或者多个前面的字符&lt;br /&gt;
｜ 或 love(a:b)表示lovea或者lobeb&lt;br /&gt;
？单个字符&lt;br /&gt;
grep返回状态值（$?） 0表示成功，1表示失败，2表示没有找到文件&lt;br /&gt;
rgrep递归访问目录树&lt;br /&gt;
—————————————————————————&lt;br /&gt;
ls -l |grep ^d 显示目录&lt;br /&gt;
grep -n -v -# -A# -B#&lt;br /&gt;
-i 不区分大小写&lt;br /&gt;
-n 显示匹配行和行号&lt;br /&gt;
-v只显示不匹配行&lt;br /&gt;
-#显示匹配行上下#行&lt;br /&gt;
-A#匹配行后面打印#行&lt;br /&gt;
-B#匹配行前面打印#行&lt;br /&gt;
-c 只输出匹配行的行数&lt;br /&gt;
-h 查询多文件的时候不显示匹配的文件名字&lt;br /&gt;
-l 查询多文件只显示匹配的文件名&lt;br /&gt;
-s 不显示错误信息&lt;br /&gt;
grep与正则表达式同用&lt;br /&gt;
grep “^[^abc]” *.f 提取行首不是abc的行&lt;br /&gt;
grep “[0-9]\{3\}[8]” *.f 提取类似xxx8的行，x表示任意数字&lt;br /&gt;
grep “a\{2\}” *.f 显示a至少出现两次的行，注意grep是以行处理单位的&lt;br /&gt;
grep -n “^$” file 列出空行的行号&lt;br /&gt;
-E参数，可以使用”与”和”或”模式&lt;br /&gt;
grep -E “abc | def” *.f 显示包含abc或者def的行&lt;br /&gt;
ex:&lt;br /&gt;
ls -l | grep “^$” 显示目录&lt;br /&gt;
ls -l | grep “^d” 显示文件&lt;br /&gt;
ls -l | grep “^d..x..x..x” 显示特定权限的目录&lt;br /&gt;
ps aux | grep “httpd” |grep -v “grep”&lt;br /&gt;
—————————————————————————&lt;br /&gt;
—————————————————————————&lt;br /&gt;
**使用find和xargs&lt;br /&gt;
1. find pathname -options [-print -exec -ok]&lt;br /&gt;
-optinos&lt;br /&gt;
1)-name:按照文件名查找&lt;br /&gt;
find ~ -name “*.txt” -print&lt;br /&gt;
find ~ -name “[a-z][0-9].txt” -print&lt;br /&gt;
2)-perm:按照权限查找文件&lt;br /&gt;
find ~ -perm 755 -print 查找权限为755的文件&lt;br /&gt;
find ~ -perm 007 -print 查找o位置上具有7权限的文件&lt;br /&gt;
find ~ -perm 4000 -print 查找具有suid的文件&lt;br /&gt;
3)-prune&lt;br /&gt;
不在当前目录下查找&lt;br /&gt;
4)-user和－nouser&lt;br /&gt;
find ~ -user zhao -print 查找文件属主是zhao的文件&lt;br /&gt;
find ~ -nouser -print 查找文件属主已经被删除的文件&lt;br /&gt;
5)-group和－nogroup&lt;br /&gt;
find ~ -group zhao -print 查找文件群组是zhao的文件&lt;br /&gt;
6)按照时间&lt;br /&gt;
find ~ -mtime -5 -print 文件更改时间在5天内的文件&lt;br /&gt;
find ~ -mtime +3 -print 文件更改时间在3天前的文件&lt;br /&gt;
find ~ -newer file1 -print 查找比文件file1新的文件&lt;br /&gt;
7)按照类型查找&lt;br /&gt;
find ~ -type d -print 查找所有目录&lt;br /&gt;
8)按照大小&lt;br /&gt;
find ~ -size +1000000C -print 查找文件大小大于1000000字节(1M)的文件&lt;br /&gt;
9)查找位于本文件系统里面的文件&lt;br /&gt;
find / -name “*.txt” -mount -print&lt;br /&gt;
-exec,-ok:find命令对于匹配文件执行该参数所给出shell命令，相应命令形式为: ‘command’ {} \;&lt;br /&gt;
-ok 在执行命令前要确认&lt;br /&gt;
find ~ -type f -exec ls -l {} \;&lt;br /&gt;
find / -name “*.log” -mtime +5 -ok rm {} \;&lt;br /&gt;
find . -name core -exec rm {} \;&lt;br /&gt;
使用-x dev参数&lt;br /&gt;
防止find搜索其他分区&lt;br /&gt;
find . -size 0 -exec rm {} \;&lt;br /&gt;
删除尺寸为０的文件&lt;br /&gt;
2. xargs与-exec功能类似&lt;br /&gt;
find ~ -type f | xargs ls -l&lt;br /&gt;
find / -name “*.log” -type f -print| xargs grep -i DB0&lt;br /&gt;
find . -type f |xargs grep -i “Mary”&lt;br /&gt;
在所有文件中检索字符串Mary&lt;br /&gt;
ls *~ |xargs rm -rf&lt;br /&gt;
删除所有以~结尾的文件&lt;br /&gt;
—————————————————————————&lt;br /&gt;
—————————————————————————&lt;br /&gt;
SED:&lt;br /&gt;
=====&lt;br /&gt;
sed [options] sedcommand inputfile &amp;gt;outputfile&lt;br /&gt;
sed不接触初始输入文件，对其不做修改，若想保存改动，重要将输出重定向到一个文件即可&lt;br /&gt;
a\: 当前行后面加入一行或者文本&lt;br /&gt;
c\: 用信文本替换本行的文本&lt;br /&gt;
d: 删除一行&lt;br /&gt;
D: 删除模板块的第一行&lt;br /&gt;
i\: 在当前行上面插入文本&lt;br /&gt;
h: 拷贝模板块的内容到内存缓冲区&lt;br /&gt;
H: 追加模板块的内容到内存缓冲区&lt;br /&gt;
g: 获得内存缓冲区内容，并替换当前模板中的文本&lt;br /&gt;
G: 获得内存缓冲区内容，并追加到当前模版块文本的后面&lt;br /&gt;
n: 读取下一个输入行，用下一个命令处理新行而不是第一个命令&lt;br /&gt;
N: 追加下一个输入行到模版块后面，并在二者间插入一个新行，改变当前行的号码&lt;br /&gt;
p: 打印模板块的行&lt;br /&gt;
P: 打印模板块的地一行&lt;br /&gt;
q: 退出sed&lt;br /&gt;
r file: 从file中读行&lt;br /&gt;
!: 表示后面的命令对所有没有选中的行起作用&lt;br /&gt;
s/re/strint/: 用string替换正则表达式re&lt;br /&gt;
=: 打印当前行号&lt;br /&gt;
#command: 把注释扩展到下一个换行符号前&lt;br /&gt;
l 打印匹配行，包括显示控制符号&lt;br /&gt;
**替换标记&lt;br /&gt;
g: 行内全部替换&lt;br /&gt;
p: 打印行&lt;br /&gt;
w: 把行写入一个文件&lt;br /&gt;
x: 互换模板块和缓冲区中的文本&lt;br /&gt;
y: 把一个字符翻译成另外一个字符&lt;br /&gt;
**sed中元字符可以使用正则表达式中所有的&lt;br /&gt;
新加：&lt;br /&gt;
&amp;amp; 保存搜索字符 s/love/**&amp;amp;**/ 用**love**代替love&lt;br /&gt;
**sed定位文本的方式&lt;br /&gt;
x 行号&lt;br /&gt;
x-y 从x行到y行&lt;br /&gt;
/patern/ 查询包括patern的行&lt;br /&gt;
x,y! 不包括指定x-y行号的行&lt;br /&gt;
ex:&lt;br /&gt;
sed ‘/Tom/d’ file&lt;br /&gt;
删除包含Tom的行；&lt;br /&gt;
sed ‘/Tom/!d’ file&lt;br /&gt;
删除所有不包含Tom的行；&lt;br /&gt;
sed -n /north/p’ file&lt;br /&gt;
打印包含north的行；&lt;br /&gt;
sed ‘3d’ file&lt;br /&gt;
删除第三行；&lt;br /&gt;
sed ’3,$d’ file&lt;br /&gt;
删除第三行到最后一行；&lt;br /&gt;
sed ‘$d’ file&lt;br /&gt;
删除最后一行；&lt;br /&gt;
sed ‘/north/d’ file&lt;br /&gt;
删除包含north的行；&lt;br /&gt;
sed -n ‘s/west/north/g’ file&lt;br /&gt;
替换所有west为north；&lt;br /&gt;
sed -n ‘s/^west/north/p’ file&lt;br /&gt;
一行的开头的west用north替换，并打印发生替换的行；&lt;br /&gt;
sed ‘s/[0-9][0-9]$/&amp;amp;.5/’ file&lt;br /&gt;
所有以两个数字结尾的行，最后两个数字被他们自己替换并附加.5；&lt;br /&gt;
sed -n ‘s/\(Mar\)got/\1ianne/p’ file&lt;br /&gt;
将Margot替换为Marianne，并打印发生替换的行；&lt;br /&gt;
sed ‘s#abc#ABC#g’ file&lt;br /&gt;
所有abc由ABC替换，（所有s后面紧跟的字符都被认为是新的分隔符）；&lt;br /&gt;
sed ‘/west/,/east/p’ file&lt;br /&gt;
打印包含west行和包含east行中间的所有行；&lt;br /&gt;
sed ’1,/east/s/$/**A**/’ file&lt;br /&gt;
地一行和包含east行之间的所有行的行尾加上字符串**A**；&lt;br /&gt;
sed -e ’1,3d’ -e ‘s/aa/bb/’ file&lt;br /&gt;
先删除1到3行，然后用bb替换aa；&lt;br /&gt;
sed ‘/Sam/r file1′ file&lt;br /&gt;
将文件file1中的内容附加在包含Sam的行后面；&lt;br /&gt;
sed ‘/Sam/w file1′ file&lt;br /&gt;
将还有Sam行写入文件file1中；&lt;br /&gt;
sed ‘/^north /a\new line second line’ file&lt;br /&gt;
所有以north加空格开头的行后面附加上两行文本，a\表示追加文本，\表示换行(tcsh中需要，bash中不需要)；&lt;br /&gt;
sed ‘/^north/i\new line’ file&lt;br /&gt;
在行首为north的行前面插入一个新行；&lt;br /&gt;
sed ‘/norht/{n; s/aa/bb/;}’ file&lt;br /&gt;
首先匹配含有north的行，然后执行一组命令，n表示移到下一行，并用bb代替aa；&lt;br /&gt;
sed ’1,3g/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/’ file&lt;br /&gt;
将1到3行中的所有小写字母用大写字母替换；&lt;br /&gt;
sed ‘/Lewis/{s/Lewis/bbb;q;}’ file&lt;br /&gt;
首先找到匹配Lewis的行，然后用bbb代替Lewis，接着q退出seq；&lt;br /&gt;
sed -e ‘/north/h’ -e ‘$G’ file&lt;br /&gt;
首先找到包含norht的行，h拷贝到内存缓冲区，然后到文件随后一行($)，G附加在最后一行后面；&lt;br /&gt;
sed -e ‘/we/{h;d;}’ -e ‘/ct/{G:}’ file&lt;br /&gt;
查找包含we的行，拷贝并且删除他，然后查找包含ct的行，将拷贝内容附加到他后面；&lt;br /&gt;
sed -e ‘/north/h’ -e ‘$g’ file&lt;br /&gt;
首先找到包含norht的行，h拷贝到内存缓冲区，然后到文件随后一行并覆盖他；&lt;br /&gt;
sed -n ‘l’ file&lt;br /&gt;
打印所有包含不能打印字符的行。&lt;br /&gt;
sed -n ‘/.*ing/p’ file&lt;br /&gt;
显示含有以ing结尾单词的行；&lt;br /&gt;
sed -n ‘/music/=’ file&lt;br /&gt;
打印含有music的行号；&lt;br /&gt;
sed ‘^$d’ file&lt;br /&gt;
删除空行&lt;br /&gt;
sed ‘s/^/abcd/g’ file&lt;br /&gt;
在行首填加abcd&lt;br /&gt;
sed ‘s/$/abcd/g’ file&lt;br /&gt;
在行尾填加abcd&lt;br /&gt;
sed ‘s/rm$/played &amp;amp;/g’ file&lt;br /&gt;
&amp;amp;表示在替换的时候保留被替换的词(rm–played rm)&lt;br /&gt;
sed ‘s/^M//g’ file&lt;br /&gt;
去掉行尾的^M (^M的输入，先按ctrl+v然后按enter即可即可)&lt;br /&gt;
—————————————————————————&lt;br /&gt;
—————————————————————————&lt;br /&gt;
gawk程序：&lt;br /&gt;
awk [-F 域分隔符] ‘commands’ inputfile&lt;br /&gt;
awk执行时，其域标志符为$1,$2,$3………$n，$0表示所有的域&lt;br /&gt;
awk -v var=value 赋值给一个用户定义的变量&lt;br /&gt;
awk ‘pattern’ file&lt;br /&gt;
awk ‘{action}’ file&lt;br /&gt;
awk ‘pattern {action}’ file&lt;br /&gt;
ex：&lt;br /&gt;
awk ‘{print $0}’ file&lt;br /&gt;
打印所有的域&lt;br /&gt;
awk ‘/Mary/’ file&lt;br /&gt;
打印包含file中包含Mary的行；&lt;br /&gt;
awk ‘{print $1}’ file&lt;br /&gt;
打印文件的第一列（第一个域）；&lt;br /&gt;
awk ‘/Mary/ {print $1,$2}’ file&lt;br /&gt;
打印文件file包含Mary的行的第一和第二个域；&lt;br /&gt;
df | awk ‘S4&amp;gt;75000′&lt;br /&gt;
打印可用空间大于75000的文件系统&lt;br /&gt;
date | awk ‘{print ” month:”, $2, “\n year:” $6}’&lt;br /&gt;
格式化date的输出；&lt;br /&gt;
awk ‘BEGIN{OFMT=”%.2f”; print 1.25463}’&lt;br /&gt;
指定数字输出格式，小数点后面保留两位有效数(1.25)；&lt;br /&gt;
awk ‘/[ab]cdef/’ file&lt;br /&gt;
打印匹配acdef或者bcdef的行；&lt;br /&gt;
awk ‘{print NR, $0}’ file&lt;br /&gt;
awk ‘{print $0, NR}’ file&lt;br /&gt;
NR当前记录数，每处理一个记录NR就加1&lt;br /&gt;
上面的命令相当于在每一行后面加上一个行号；&lt;br /&gt;
NF则记录每一行的域的个数；&lt;br /&gt;
awk -F ‘[ :\t]‘ ‘{print $0}’ file&lt;br /&gt;
指定域分隔符为空格、:或者tab&lt;br /&gt;
awk ‘/^[A-Z][a-z]+/’ file&lt;br /&gt;
打印所有以一个大写字母开头，然后是一个或者多个小写字母的行；&lt;br /&gt;
awk ‘$1~/[Bb]ill/’ file&lt;br /&gt;
第一个域匹配Bill或者bill的行；&lt;br /&gt;
awk ‘$1!~/ly$/’ file&lt;br /&gt;
第一个域末尾不是ly的行；&lt;br /&gt;
awk ‘/^(No|no)/’ file&lt;br /&gt;
打印行首为No或者no的行；&lt;br /&gt;
awk ‘BEGIN {print “file head \n”} {print $1 \t $4}’ file&lt;br /&gt;
awk ‘BEGIN {print “file head \n”} {print $1 \t $4}’ file |tee out.file&lt;br /&gt;
打印文件的时候附加一个文件头&lt;br /&gt;
awk ‘BEGIN {print “file head \n”} {print $1 \t $4} END {print “end of file”}’ file&lt;br /&gt;
打印文件的时候附加一个文件头和文件尾&lt;br /&gt;
awk中使用正则表达式&lt;br /&gt;
awk ‘{if($1~/hello/) print $0}’ file&lt;br /&gt;
如果域1中包含hello，就打印所有的域&lt;br /&gt;
~//表示匹配正则表达式，!~//表示不匹配正则表达式&lt;br /&gt;
awk ‘{if($6,&amp;gt;=,==,!=,~,!~（匹配，不匹配）&lt;br /&gt;
awk ‘$3==5346′ file&lt;br /&gt;
第三个域等于5346，就打印出该行；&lt;br /&gt;
awk ‘$3&amp;gt;5000 {print $1}’ file&lt;br /&gt;
第三个域大于5000就打印该行第一个域&lt;br /&gt;
awk ‘{max={$1&amp;gt;$2}?$1:$2; print max}’ file&lt;br /&gt;
如果第一个域大于第二个域，max=$1否则=$2，打印最大值&lt;br /&gt;
awk ‘{print ($1==11?”high\t” $2:”low\t” $2)}’ file&lt;br /&gt;
&amp;amp;&amp;amp;逻辑和，||逻辑或，!逻辑非&lt;br /&gt;
awk ‘$2==$5 &amp;amp;&amp;amp; $3&amp;gt;5′ file&lt;br /&gt;
awk ‘/Tom/,/Jary/’ file&lt;br /&gt;
Tom第一次出现和Jary第一次出现之间的所有行；&lt;br /&gt;
awk ‘/north/ {print $3+10}’ file&lt;br /&gt;
包含north行的地三个域加10；&lt;br /&gt;
awk ‘$3==”aa” {$2=”dd”; print $0}’ file&lt;br /&gt;
将地三个域为aa的行的第二域变成dd，并打印该行；&lt;br /&gt;
**awk编程：&lt;br /&gt;
使用变量&lt;br /&gt;
awk ‘$1~/Tom/ {wage=$2+$3; print wage}’ file&lt;br /&gt;
先扫描第一个域，如果匹配Tom，就将第二和第三域的总和赋值给变量wage并输出；&lt;br /&gt;
awk ‘BEGIN{FS=”:”; OFS=”\t”;ORS=”\n\n”}{print $0}’ file&lt;br /&gt;
处理文件前设置&lt;br /&gt;
域分隔符(FS)为(:)&lt;br /&gt;
输出域分隔(OFS)为(\t)&lt;br /&gt;
输出记录分隔符(ORS)为(\n\n)&lt;br /&gt;
awk ‘END{print “The number of record is:’ NR}’ file&lt;br /&gt;
处理完文件后执行END语句&lt;br /&gt;
输出总记录数&lt;br /&gt;
awk ‘/Mary/{count++} END{print “Mary was found” count “times”}’ file&lt;br /&gt;
计数文件中Mary出现的次数；&lt;br /&gt;
**awk输入输出重定向&lt;br /&gt;
awk ‘$4&amp;gt;=70 {print $1, $2 &amp;gt;”outfile”}’ file&lt;br /&gt;
结果重定向到文件outfile中&lt;br /&gt;
awk ‘BEGIN{“date” |getline d; print d}’&lt;br /&gt;
将date结果输给getline函数，并打印&lt;br /&gt;
(getline从标准输出，管道等获得输入)&lt;br /&gt;
awk ‘BEGIN{“date” |getline d; split(d,mon); print mon[1] mon[2]}’&lt;br /&gt;
将date结果输给getline函数，slpit将d分解成数组，打印数组第2个变量&lt;br /&gt;
**split函数：split(string,array,field seperator)&lt;br /&gt;
awk ‘BEGIN{while(“ls”|getline) print}’&lt;br /&gt;
依次输出ls的每一项&lt;br /&gt;
awk&lt;br /&gt;
‘BEGIN{print “what is your name?”; getline name 0) {lc++; print lc ” ” a}}’&lt;br /&gt;
awk ‘BEGIN{while(getline a 0) {lc++; print lc}}’&lt;br /&gt;
如果文件不存在，getline返回-1&lt;br /&gt;
到达文件尾返回0&lt;br /&gt;
读到一行返回1&lt;br /&gt;
读取文件/etc/passwd，计数行数&lt;br /&gt;
**awk控制语句&lt;br /&gt;
if语句：&lt;br /&gt;
awk ‘{if($6&amp;gt;50) print $1 “too high”}’ file&lt;br /&gt;
awk ‘{if($6&amp;gt;20 &amp;amp;&amp;amp; $250}{x++; print x} else {y++;print y}’ file&lt;br /&gt;
awk ‘{if($1~/peter/){next} else {print}}’ file&lt;br /&gt;
如果第一个域包含peter，awk就忽略这一行，读取文件的下一行，脚本从头开始执行；&lt;br /&gt;
循环语句：&lt;br /&gt;
awk ‘{i=1; while(i file&lt;br /&gt;
cat -v file 显示文件，包括其中的控制符(-v)&lt;br /&gt;
cat -n file 为每一行编号&lt;br /&gt;
cat -b file 每个非空行编号&lt;br /&gt;
cat -T file 以^I显示tab&lt;br /&gt;
3.&lt;br /&gt;
管道 | 把一个命令的输出传递给另外一个命令为输入&lt;br /&gt;
ex:&lt;br /&gt;
ls | grep file.doc&lt;br /&gt;
查找文件file.doc&lt;br /&gt;
who | awk ‘{print $1 “\t” $2}’ 只显示用户名和所在终端&lt;br /&gt;
df -h | awk ‘{print $1}’ |grep -v “filesystem” (-v表示输出不包括filesystem的项目)&lt;br /&gt;
df -h | awk ‘{print $1}’ |grep -v “filesystem” |sed ‘s/\/dev\///g’ 显示设备的时候不显示/dev/&lt;br /&gt;
4.tee&lt;br /&gt;
who | tee who.txt 输出到屏幕的同时输出到文件&lt;br /&gt;
who | tee -a who.txt 附加在文件的后面&lt;br /&gt;
5.文件重定向&lt;br /&gt;
ls -l |grep ^d &amp;gt;file.out 所有目录名字重定向到一个文件&lt;br /&gt;
cat /etc/passwd | awk -F: ‘{print $1}’ |sort &amp;gt;a.out (-F:指定分隔符为:)&lt;br /&gt;
cat &amp;gt;file.out reboot&lt;br /&gt;
at&amp;gt; ctrl+D&lt;br /&gt;
3小时后reboot&lt;br /&gt;
3.&lt;br /&gt;
bc – 计算器&lt;br /&gt;
scale=3 设置小数点后数字为数&lt;br /&gt;
ibase=2 二进制运算&lt;br /&gt;
4.&lt;br /&gt;
ls -d dir&lt;br /&gt;
只显示目录而不显示其下面的文件。&lt;br /&gt;
5.&lt;br /&gt;
sync&lt;br /&gt;
更新superblock并把它写入硬盘&lt;br /&gt;
6.&lt;br /&gt;
scp user@host:/path/file1 user@host:/path/file&lt;br /&gt;
服务器间拷贝文件&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 根据文件属性或权限进行find查找==&lt;br /&gt;
  find /var -user root -group mail    -ls&lt;br /&gt;
[https://blog.51cto.com/yttitan/1935023 根据文件属性或权限进行find查找]&lt;br /&gt;
==References参考 ==&lt;br /&gt;
http://ltblog.blog.51cto.com/1263616/845691&lt;br /&gt;
&lt;br /&gt;
[http://www.cnblogs.com/wanqieddy/archive/2011/06/09/2076785.html Linux中find常见用法示例]&lt;br /&gt;
&lt;br /&gt;
[[category:shell]] [[category:ops]]&lt;/div&gt;</summary>
		<author><name>Evan</name></author>
	</entry>
</feed>