ソートソート;一意の重みの削除; tr標準入力編集;カットコンテンツ編集;シェル-正規表現

1.並べ替えコマンド

  • ファイルの内容を行ごと、またはさまざまなデータ型に従って並べ替えます

①フォーマット

sort [选项] 参数
cat file | sort 选项

②共通オプション

-f:忽略大小写,默认会大写字母排在前面
-b:忽略每行前面的空格
-n:按照数字进行排序
-r:反向排序
-u:等同uniq,表示相同的数据仅显示一行
-t:指定字段分隔符,默认使用[tab]键分隔
-k:指定排序字段
-o <输出文件>:将排序后的结果转存至指定文件

③例

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

2.uniqコマンド

  • ファイル内の連続する繰り返し行を報告または無視するために使用されます。多くの場合、sortコマンドと組み合わせて使用​​されます。

①フォーマット

uniq [选项] 参数
cat file | uniq 选项

②共通オプション

-c:进行计数,并删除文件中重复出现的行
-d:仅显示连续的重复行
-u:仅显示出现一次的行

③例

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

3.trコマンド

  • 通常、標準入力から文字を置換、圧縮、および削除するために使用されます

①フォーマット

tr [选项] [参数]

②共通オプション

-c:保留字符集1的字符,其他的字符(包括换行符\n)用字符集2替换
-d:删除所有属于字符集1的字符
-s:将重复出现的字符串压缩为一个字符串,用字符集2 替换 字符集1
-t:字符集2 替换 字符集1,不加选项同结果

③パラメータ

  • 文字セット1:
    変換または削除する元の文字セットを指定します。変換操作を実行する場合は、パラメータ「文字セット2」を使用して変換操作を指定し、パラメータ「文字セット2」を使用して変換の対象文字セットを指定する必要があります。ただし、削除操作を実行する場合、パラメータ「文字セット2」は必要ありません。
  • 文字セット2:
    変換するターゲット文字セットを指定します

④例

ここに画像の説明を挿入

4.カットコマンド

  • 行の指定された部分を表示し、ファイル内の指定されたフィールドを削除します

①フォーマット

cut 选项 参数
cat file | cut 选项

②共通オプション

-f :通过指定哪一个字段进行提取。cut命令使用"tab"作为默认的字段分隔符
-d : "TAB”是默认的分隔符,使用此选项可以更改为其他的分隔符
--complement :此选项用于排除所指定的字段
--output-delimiter :更改输出内容的分隔符

③例

ここに画像の説明を挿入

5.正規表現

通常、文字列が特定の形式を満たしているかどうかを確認するために判断ステートメントで使用されます

正規表現は、通常の文字とメタ文字で構成されます

一般的な文字には、大文字と小文字、数字、句読点、その他の記号が含まれます

メタ文字とは、正規表現で特別な意味を持つ特殊文字を指し、ターゲットオブジェクトの先頭文字(メタ文字の前の文字)の外観を指定するために使用できます。

①基本的な正規表現の一般的なメタ文字(サポートツール:egrep、awk、sed、grep)

\ :转义字符,用于取消特殊符号的含义,例: \!、\n、\$等

^ :匹配字符串开始的位置,例: ^a、 ^the、 ^#、^[a-z]

$ :匹配字符串结束的位置,例: word$、 ^$匹配空行

. :匹配除\n之外的任意的一个字符,例: go.d、 g..d

* :匹配前面子表达式0次或者多次,例: goo*d、 go.*d

[list] :匹配list列表中的一个字符,例: go[ola]d, [abc]、 [a-z]、 [a-z0-9]、 [0-9]匹配任意一位数字

[^list] :匹配任意非list列表中的一个字符,例: [^0-9]、 [^A-20-9]、 [^a-z]匹配任意一位非小写字母

\{n\} :匹配前面的子表达式n次,例: go\{2\}d、 '[0-9]\{2\} '匹配两位数字

\{n,\} :匹配前而的子表达式不少于n次,例: go\{2, \}d、'[0-9]\{2, \}'匹配两位及两位以上数字

\{n,m\} :匹配前面的子表达式n到m次,例: go\{2,3\}d、 ' [0-9]\{2,3\}'匹配两位到三位数字

注:egrepとawkが{n}、{n、small、{n、m}を使用して一致させる場合、「{}」の前に「\」を追加する必要はありません。

②正規表現メタ文字を拡張します(サポートされているツール:egrep、awk)

+ :匹配前面子表达式1次以上,例: go+d, 将匹配至少一个o, 如god、 good、 goood等

? :匹配前面子表达式0次或者1次,例: go?d, 将匹配gd或god

() :将括号中的字符串作为一个整体,例1: g(oo)+d," 将匹配oo整体1次以上,如good、gooood等

| :以或的方式匹配字条串,例: g (oo|la)d," 将匹配good或者glad

③例

①:メールアドレスを一致させる
ここに画像の説明を挿入

egrep "^[a-zA-Z][a-zA-Z0-9\.\-]{4,}[a-zA-Z0-9]{1,}[@][A-Za-z0-9]+[\.][a-zA-Z]+[\.]*[a-zA-Z]*$" yx.txt

ここに画像の説明を挿入
②:13と15から始まる携帯電話番号を照合します
ここに画像の説明を挿入

grep "^1[35][0-9|?]\{9\}$" ph.txt

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_53496478/article/details/114872263