「シェル」スクリプトコマンド

1. ソートコマンド

  • ファイルの内容を動作単位で並べ替え、またさまざまなデータ型に従って並べ替えます。
  • 比較原理は、ASCII コード値に従って最初の文字から後方に比較し、最終的に昇順に出力します。

文法形式:
sort [オプション] パラメータ
cat ファイル | sort オプション

キャラクター オプション
-n 番号順に並べ替える
-r 逆ソート
-u uniq に相当し、同じデータが 1 行に表示されることを示します。
-t 指定字段分隔符,默认使用[Tab]键分隔
-k 指定排序字段
-o <出力ファイル>: ソートされた結果を指定されたファイルにダンプします。
-f 大文字と小文字は無視され、比較のためにすべての小文字が大文字に変換されます。
-b 各行の前の空白を無視する

実験 1; sort を直接使用して最初の文字で並べ替える

ここに画像の説明を挿入

実験 2: ソートを使用して小さいものから大きいものへ昇順に並べる
ここに画像の説明を挿入

実験 3: sort を使用して降順に並べ替える
ここに画像の説明を挿入
実験 4: 繰り返されるデータを 1 行だけ表示する
ここに画像の説明を挿入
実験 5: -t、-k を使用して並べ替えを指定する
ここに画像の説明を挿入

Two.uniq コマンド

ファイル内の連続した繰り返し行を報告または無視するために使用され、多くの場合sort命令組み合わせて使用​​されます。
構文形式:
uniq [オプション] パラメーター
cat ファイル | uniq オプション

オプション 説明
-c ファイル内の重複行をカウントして削除する
-d 連続した重複行のみを表示
-u 1 回出現する行のみを表示する

コマンドのデモ:
(1) sort -n コマンドを使用してシーケンスを並べ替え、uniq を使用して重複する数値を削除します
ここに画像の説明を挿入
(2) uniq -d を使用して重複する値を表示します
ここに画像の説明を挿入
(3) uniq -u を使用して重複しない
ここに画像の説明を挿入
(4) このコンテンツ内の行コンテンツの出現数を表示するには、uniq -c を使用して表示できます。
ここに画像の説明を挿入

Three.tr コマンド

tr コマンド - 標準入力の文字の置換、圧縮、削除によく使用されます。

语法格式:
tr [选项][参数]
共通オプション 説明
-c 文字セット 1 の文字は予約されており、他の文字 (改行 \n を含む) は文字セット 2 に置き換えられます。
-d 文字セット 1 に属するすべての文字を削除します
-s 繰り返される文字列を 1 文字に圧縮し、文字セット 1 を文字セット 2 に置き換えます。
-t 文字セット 2 は文字セット 1 を置き換えますが、オプションなしでも同じ結果になります

ここに画像の説明を挿入

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

コマンドのデモ:
(1) -c を使用して置換します。改行文字を置換したくない場合は、\n を追加します。
ここに画像の説明を挿入

(2) -d を使用して文字を削除します
ここに画像の説明を挿入
(3) -s を使用して繰り返し文字を圧縮し、置換します
ここに画像の説明を挿入
ここに画像の説明を挿入
(4) tr コマンドを使用して配列をソートします
ここに画像の説明を挿入

4.カットコマンド

Cut コマンド - 行の指定された部分を表示し、ファイル内の指定されたフィールドを削除します。

语法格式:
cut 参数
cat 文件名 | cut 选项
オプション 説明
-f どのフィールドを抽出するかを指定します。Cut コマンドはデフォルトのフィールド区切り文字として「TAB」を使用します。
-d 「TAB」はデフォルトの区切り文字です。他の区切り文字に変更するには、このオプションを使用します。
- - 補足 このオプションは、指定されたフィールドを除外するために使用されます。
- - 補足 このオプションは、指定されたフィールドを除外するために使用されます。

コマンドのデモンストレーション:

(1) -f と -d を使用して分割フィールドを指定します
ここに画像の説明を挿入
(2) 複数フィールドの分割表示を実現します
ここに画像の説明を挿入
(3) –complement コマンドを使用して反転出力を実行します。指定された番号以外は表示されず、それ以外は出力されます
ここに画像の説明を挿入
(4) –output -delimiter コマンドを使用して、出力コンテンツの区切り文字を指定します
ここに画像の説明を挿入

5. 分割コマ​​ンド

Linux システムで大きなファイルをいくつかの小さなファイルに分割する

split 选项 参数 原始文件 拆分后文件名前缀
共通オプション 説明
-l 行数で分割
-b サイズごとに分ける

6.ペーストコマンド

実験的なデモンストレーション:
(1) 列内のファイルをマージします
ここに画像の説明を挿入
(2) 間隔文字を指定します
ここに画像の説明を挿入
(3) ファイルを行ごとに貼り付けるのではなく、-s を使用して行にマージ
ここに画像の説明を挿入
します (4) コマンド ラインに r を追加して、マージするディレクトリ ファイルを指定します
ここに画像の説明を挿入

7.evalコマンド

コマンドワードの前に eval を追加すると、シェルはコマンドを実行する前に eval を 2 回スキャンします。
eval コマンドは、まずコマンド ラインをスキャンしてすべての置換を探してから、コマンドを実行します。
このコマンドは、1 回のスキャンでは機能を実現できない変数に適しています。该命令对变量进行两次扫描

echo "hello world" > file1
myfile="cat file1"
echo $myfile 
#现在还只是显示变量的值
eval $myfile  
#经过eval的扫描后,变量的值被替换为cat file1的执行结果
 
[root@dz666 ~]# echo "hello world" > file
[root@dz666 ~]# myfile="cat file"
[root@dz666 ~]# echo $myfile 
cat file
[root@dz666 ~]# eval $myfile
hello world
# eval $myfile -> cat file -> hello world

eval コマンドの記述:

vim 2.sh
    a=100
    b=a
    echo \$$b
    eval echo \$$b
 
[root@dz666 ~]# sh test2.sh
   $a  #执行\$$b的命令
   100
执行顺序为 echo \$$becho \$a  →  100

おすすめ

転載: blog.csdn.net/Wanghwei17/article/details/130607955