Linuxの4人の剣士

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ファイル		    				 #は、ファイルのファイル名を検索、
 型B / D / C / P / L / F			     #は、チェックブロックデバイス、ディレクトリ、文字装置、パイプ、シンボリックリンク、通常ファイルである。 -size N- [C] チェックブロック長をN [nバイトまたは]ファイル; -perm #見つけるための権限で実行される。-userユーザ名#検索するファイルの所有者によって; -基GROUPNAME #基によって見つける。-mtime -n + N #ファイルを見つけるために時間を変更するファイルによって、-nのn日以内を指し、+ N N日前指し; -atime -n + N #ファイルのアクセス時間によってファイル検索する。-ctime -n + N 見つけるために、ファイルの作成時刻で#をファイル; -mmin -n + N #ファイルでファイルを見つけるための時間を変更するには、-n手段その数分以内に、N、+ N N分前指し; -アミン-n + n個のファイルを見つけるために、ファイルアクセス時間によって#; -cmin -n N- +のファイルを見つけるために、ファイルの作成日時によって#; -nogroup #チェックファイルに有効な属グループなし; -nouser #チェックファイルに有効な所有者なし。-newer F1 F2!#ファイルを検索し、-n N N +、N日以内を指し日前指し、-depth カタログを検索今すぐ先にサブディレクトリに入る前に#メイク発見; -fstype 変更#チェック長くF1、F2よりも新しいが、古いファイルより。-mount #チェックファイルは、クロスファイルシステムのマウントポイントをしません。-follow ;#を使用すると、シンボリックリンクファイルがある場合は、トレースファイルのリンクを参照-cpio ファイルシステムの特定の種類に位置している#のチェックファイル、-prune #は無視しますディレクトリ; -maxdepth #ルックアップディレクトリレベルの深
  • -name
1
 2
 3
 4
検索/ホーム/ -name「ファイル」
 という名前のファイル#クエリのホームディレクトリのファイルに
 検索/ホーム/ -name「[AZ] *」 ファイル名の下に#を見つけるのホームディレクトリには、小文字のファイルで始まります
  • -type
1
 2
 3
 4 5 6
検索/ホーム/ -type d個 
 のホームディレクトリ下の#検索ディレクトリ
 検索/ホーム/ -typeはd! のホームディレクトリ下の非ディレクトリを探すホーム検索/ -type dを| xargsが-R 755 chmodの、ホームディレクトリを見つけるために、#ディレクトリをそして755には、このディレクトリのファイルのパーミッションを設定し、
  • -size
1
 2
 3
 4 5 6
見つける/ホーム/ -size + 1K
 ファイルのホームディレクトリがより大きく1Kです見つけるファイル#
 検索/ホーム/ -size -1M #見つけるホームディレクトリのファイルは1Mのファイルよりも小さい検索/ホーム/ -size 10K #ホームディレクトリルックアップファイルはに等しく、 10Kファイル
  • -perm
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
*							 #0文字以上の文字、数字、
 #は任意の文字;?一致する
 ##はノートを示し; | ;#パイプ記号; #は、行に複数のコマンドを実行し; #背景ディレクティブ; 非の#論理演算、[] #コンテンツの範囲、コンテンツマッチングブラケット; {} コマンドブロック、マッチング複数のコマンド
  • 正規表現
1
 2
 3
*							 #文字が0回以上一致する前に
 +							 正規表現の前に1回以上#の 正規表現の前に#が0回以上発生しました?
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]
  • 练一个
1
# 查询文件ip地址

Awk

AWK是一个优良的文本处理工具,LinuxUnix环境中现有的功能最强大的数据处理引擎之一

AhoWeinbergerKernighan三位发明者名字首字母命名为AWKAWK是一个行级文本高效处理工具

AWK经过改进生成的新的版本有NawkGawk,一般Linux默认为GawkGawk是 AWKGNU开源免费版本,也就是我们现在所使用的版本

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) 返回st的第一个位置
length(s) s的长度
match(s, r) s是否匹配r
split(s, a, fs) fs
substr(s, p 返回sp开始的子串
  • 操作符
操作符 解释
++、– 增加或减少
^、** 指数
!、+、- 非、一元加减
+、-、*、/、%、 四则运算、取余
<<、<=、==、!=、>=、> 比较大小
&&、|| 逻辑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                   				# x为指定行号;
x,y                 		    # 指定从x到y的行号范围;
/pattern/           		    # 查询包含模式的行; /pattern/pattern/ # 查询包含两个模式的行; /pattern/,x # 从与pattern的匹配行到x号行之间的行; x,/pattern/ # 从x号行到与pattern的匹配行之间的行; x,y! # 查询不包括x和y行号的行; r # 从另一个文件中读文件; w # 将文本写入到一个文件; y # 变换字符; q # 第一个模式匹配完成后退出; l # 显示与八进制ASCII码等价的控制字符; {} # 在定位行执行的命令组; p # 打印匹配行; = # 打印文件行号; a\ # 在定位行号之后追加文本信息; i\ # 在定位行号之前插入文本信息; d # 删除定位行; c\ # 用新文本替换定位文本; s # 使用替换模式替换相应模式; n # 读取下一个输入行,用下一个命令处理新的行; N # 将当前读入行的下一行读取到当前的模式空间。 h # 将模式缓冲区的文本复制到保持缓冲区; H # 将模式缓冲区的文本追加到保持缓冲区; x # 互换模式缓冲区和保持缓冲区的内容; g # 将保持缓冲区的内容复制到模式缓冲区; G # 将保持缓冲区的内容追加到模式缓冲区。

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

おすすめ

転載: www.cnblogs.com/wa1314/p/12154698.html