4人の剣士がありますが、彼らは非常に強力です
検索
Queryコマンドは、find
1
2 |
用法:見つける[-H | -L | -P] [-EXdsx] [-fパス]パス... [式]
-H [見つけます| -L | -P] [-EXdsx] -fパス[パス...] [式] |
1
2
3
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
-nameファイル |
1
2
3
4 |
検索/ホーム/ -name「ファイル」
という名前のファイル#クエリのホームディレクトリのファイルに
検索/ホーム/ -name「[AZ] *」 ファイル名の下に#を見つけるのホームディレクトリには、小文字のファイルで始まります |
1
2
3
4 5 6 |
検索/ホーム/ -type d個
のホームディレクトリ下の#検索ディレクトリ
検索/ホーム/ -typeはd! #のホームディレクトリ下の非ディレクトリを探すホーム検索/ -type dを| xargsが-R 755 chmodの、ホームディレクトリを見つけるために、#ディレクトリをそして755には、このディレクトリのファイルのパーミッションを設定し、 |
1
2
3
4 5 6 |
見つける/ホーム/ -size + 1K
ファイルのホームディレクトリがより大きく1Kです見つけるファイル#
検索/ホーム/ -size -1M #見つけるホームディレクトリのファイルは1Mのファイルよりも小さい検索/ホーム/ -size 10K #ホームディレクトリルックアップファイルはに等しく、 10Kファイル |
1
2
3
4 5 6 |
検索/ホーム/ -perm -775
#マイナス一致しなければならない特権1現在の775のすべての部分よりもより適切な符号手段
検索を/ホーム/ -perm 001 #は限り権限の位置は、クエリに一致するように、そのプラス記号意味を表し、条件検索/ホーム/ -perm 644 #644クエリのファイルとディレクトリ |
グレップ
Global search regular expression
1
2
3
4 |
用法:grepの[-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A NUM] [-B NUM] [-C [NUM]
[-eパターン] [-fファイル] [--binary-ファイル=値] [--color =とき]
[--context [= NUM]] [--directories =アクション] [--label] [--line-バッファリング]
[--null] [パターン] [ファイル...] |
1
2
3
4 5 6 7 8 9 |
;テキストファイルとして-a#探索
番号-c#計算は、線に沿って見出さ;
-i#はケース無視;
-n#なお、出力ライン数; -v#逆選択、すべてのテキストが一致を含まないディスプレイライン; -h#クエリを複数のファイルをするときに、ファイル名を表示されません。一致する文字-l#クエリを複数のファイルを含む出力ファイルの名前だけ; -s#は、メッセージが存在しないエラーや不一致のテキストは表示されません。-Eは#を使用することができますegrepのパターンマッチングを拡張しました。 |
1
2
3
4 5 6 7 8 9 10 11 12 13 14 15 16 |
^ # 匹配行首,即以某个字符开头;
$ # 匹配行尾,即以某个字符结尾;
\(..\) # 标记匹配字符;
[] # 匹配中括号里的任意指定字符,但只匹配一个字符;
[^] # 匹配除中括号以外的任意一个字符; \ # 转义符,取消特殊含义; \< # 锚定单词的开始; \> # 锚定单词的结束; {n} # 匹配字符出现n次; {n,} # 匹配字符出现大于等于n次; {n,m} # 匹配字符至少出现n次,最多出现m次; \w # 匹配文字和数字字符; \W # \w的反置形式,匹配一个或多个非单词字符; \b # 单词锁定符; \s # 匹配任何空白字符; \d # 匹配一个数字字符,等价于[0-9] |
Awk
AWK
是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一
以Aho
、Weinberger
、Kernighan
三位发明者名字首字母命名为AWK
,AWK
是一个行级文本高效处理工具
AWK
经过改进生成的新的版本有Nawk
、Gawk
,一般Linux默认为Gawk
,Gawk
是 AWK
的GNU
开源免费版本,也就是我们现在所使用的版本
AWK
基本原理是逐行处理文件中的数据,查找与命令行中所给定内容相匹配的模式
如果发现匹配内容,则进行下一个编程步骤,如果找不到匹配内容,则 继续处理下一行
1 |
usage: awk [-F fs] [-v var=value] [-f progfile | 'prog'] [file ...] |
变量 |
解释 |
FS |
分隔符 |
OFS |
输出分隔符 |
NR |
当前行数,从-1 开始 |
NF |
当前记录字段个数 |
$0 |
当前记录 |
$1~$n |
当前记录第n个字段(列) |
函数 |
解释 |
gsub(r, s) |
在$0 中用s 代替r |
index(s, t) |
返回s 中t 的第一个位置 |
length(s) |
s 的长度 |
match(s, r) |
s 是否匹配r |
split(s, a, fs) |
在fs |
substr(s, p |
返回s 从p 开始的子串 |
操作符 |
解释 |
++、– |
增加或减少 |
^、** |
指数 |
!、+、- |
非、一元加减 |
+、-、*、/、%、 |
四则运算、取余 |
<<、<=、==、!=、>=、> |
比较大小 |
&&、|| |
逻辑and、逻辑or |
=、+=、-=、=、/=、%=、^=、*= |
赋值 |
Sed
在处理文本时把当前处理的行存储在临时缓冲区中,称为:模式空间,pattern space
然后SED命令处理缓冲区中的内容,处理完成后将缓冲区的内容输出至屏幕或者写入文件
1
2
3
4
5
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
x |
sed工具默认处理文本,文本内容输出屏幕已经修改,但是文件内容其实没有修改
需要加-i参数即对文件彻底修改;
1
2
3
4
5
6 7 |
cat -n file | sed -n "p"
# 查看file文件 并且阅读其中所有行,因p前无规则
cat -n file | sed -n "1,3p"
# 查看file文件 1-3行 sed "1p;\$p" file sed '1p;$p' file # 查看文件第一行和最后一行 |
1
2
3
4
5
6 |
sed '1,3d' file
# 删除文件第一到第三行
sed '$d' file
# 删除文件最后一行 sed -i '/#*/d' file # 删除文件中以#号开头的行 |
1
2
3
4
5 |
sed 's/old/new/g' file
sed -i 's/old/new/g' file # 加了-i那么修改会影响到原本的文件对象
# 替换file文件中的old内容为new
# s:使用替换模式替换相应模式 # g:将保持缓冲区的内容复制到模式缓冲区; |
1
2
3
4 |
sed "/###/a 123123123" file
# 在file的符合###匹配的 后面加一行123123123
sed "1,3a 123123123" file
# 在文件的1,3行追加123123123 |
1
2
3
4 |
sed "/###/a 123123123" file
# 在file的符合###匹配的 前面加一行123123123
sed "1,3a 123123123" file
# 在文件的1,3行前面加123123123 |