[Linux]パイプ操作のコマンド
9268 ワード
パイプコマンド
command1 | command2 | command3
注意:パイプコマンドは、前のコマンドからのデータを受け入れてstandard inputとして処理を続行する必要があります.
Cutは,ある情報のあるセグメントを切り出し,処理する情報は行為単位である.
パラメータ:
-d:後に区切り記号を付け、-fと一緒に使用します.
-f:-dの区切り記号に基づいて1段の情報を数段に切断し、-fで数段目の意味を取り出す.
-c:固定文字区間を文字(characters)単位で取り出す.
grepは1行の情報を分析し、一致するものがあれば、その行を取り出します.
パラメータ:
-a:binaryファイルをtextファイルでデータを検索します.
-c:「検索文字列」が見つかった回数を計算します.
-i:大文字と小文字の違いを無視する;
-n:行番号付き;
-v:逆選択で、「文字列の検索」のない行が表示されます.
--color=auto:検索したキーワードの部分に色表示を付けることができます
sortは、異なるデータ型に基づいてソートすることができる.
パラメータ:
-f:大文字と小文字を無視
-b:一番前のスペースを無視
M:月の名前で並べ替えます.JAN、DECなどです.
-n:数値を使用してソートします(デフォルトは文字タイプでソートされます).
-r:逆ソート
-u:uniq、同じデータ、1行の代表しか現れません
-t:区切り記号、デフォルトは[タブ]で分割
-k:どのfiledでソートしますか.-tに関連します.
Uniqで繰り返される行は1つのみ表示されます
パラメータ:
-i:大文字小文字は無視
-c:カウント
wc出力情報の全体データ
パラメータ:
-l:列移動のみ
-w:どれだけの文字しかリストされていません(英語の単語)
-m:文字数
teeは二重配向し,ファイル/デバイスに格納しながら画面に出力して処理を継続する.
パラメータ:
[-a]:ファイルに累積(append)で出力します.
tr情報中の文字を削除したり、文字情報の変換を行ったりします.
パラメータ:
-d:情報中のXXXという文字列を削除する
-s:重複する文字を置換
col特殊文字の処理
パラメータ:
-x:tabキーを対等のスペースキーに変換
-b:文字内にスラッシュ(/)がある場合は、スラッシュの最後に続く文字のみを保持します.
joinは2つのファイルに同じデータがある行を加算します.
パラメータ:
-t:joinはデフォルトでデータをスペースで区切り、「最初のフィールド」のデータと比較します.2つのファイルが同じ場合は、2つのデータを1行に接続し、最初のフィールドを最初のフィールドに配置します.
-i:大文字小文字は無視
-1:(数値1)最初のファイルを比較するフィールド
-2:2番目のファイルを比較するフィールド
pasteは2つのファイルを貼り合わせ、真ん中を[tab]キーで隔てます.
パラメータ:
-d:後に区切り記号を付けることができます.デフォルトは[tab]で区切ります.
-:file部分が-、standard inputからのデータを表す
expand[tab]ボタンをスペースキーに変更
パラメータ:
-t:後に数字を付けることができます.tabを表すにはいくつかのスペースで表します.
xargsはstdinのデータを読み込み、スペースまたは断行で分解し、stdinのデータをargumentsに分割する.
パラメータ:
-0:入力したstdinに`,,スペースキーなどの特殊文字が含まれている場合、このパラメータは一般文字に復元できます.
-e:EOF(end of file)という意味で、後ろに文字列を付けることができます.xargsがこの文字列を分析すると、作業を停止します.
-p:各コマンドのパラメータを実行すると、ユーザーの意見が聞かれます
-n:後続回数
例を挙げる
フォルダの下のjavaコードのファイル数を統計したい場合は
もし私がjavaコードの行数をすべて検索したいなら?
wc-l filenameは単一ファイルの行数をクエリーできるのでxargsを使用できます.
空白行を削除するには
command1 | command2 | command3
注意:パイプコマンドは、前のコマンドからのデータを受け入れてstandard inputとして処理を続行する必要があります.
Cutは,ある情報のあるセグメントを切り出し,処理する情報は行為単位である.
cut -d ' ' -f fields
cut -c
パラメータ:
-d:後に区切り記号を付け、-fと一緒に使用します.
-f:-dの区切り記号に基づいて1段の情報を数段に切断し、-fで数段目の意味を取り出す.
-c:固定文字区間を文字(characters)単位で取り出す.
echo $PATH | cut -d ':' -f 3-5
// path ':' , 3 5
export | cut -c 12-
// export , 12
grepは1行の情報を分析し、一致するものがあれば、その行を取り出します.
grep [-acinv] [--color=auto] ' ' filename
パラメータ:
-a:binaryファイルをtextファイルでデータを検索します.
-c:「検索文字列」が見つかった回数を計算します.
-i:大文字と小文字の違いを無視する;
-n:行番号付き;
-v:逆選択で、「文字列の検索」のない行が表示されます.
--color=auto:検索したキーワードの部分に色表示を付けることができます
export | grep -in --color=auto 'bin'
// export bin , bin , , 。
sortは、異なるデータ型に基づいてソートすることができる.
sort [-fbMnrtuk] [file or stdin]
パラメータ:
-f:大文字と小文字を無視
-b:一番前のスペースを無視
M:月の名前で並べ替えます.JAN、DECなどです.
-n:数値を使用してソートします(デフォルトは文字タイプでソートされます).
-r:逆ソート
-u:uniq、同じデータ、1行の代表しか現れません
-t:区切り記号、デフォルトは[タブ]で分割
-k:どのfiledでソートしますか.-tに関連します.
cat /etc/passwd | sort -t ':' -k 3 -n
// passwd , ':' , 3 。
Uniqで繰り返される行は1つのみ表示されます
uniq [-ic]
パラメータ:
-i:大文字小文字は無視
-c:カウント
last | cut -d ' ' -f1 | sort | uniq -c
// , , , 。
wc出力情報の全体データ
wc [-lwm]
パラメータ:
-l:列移動のみ
-w:どれだけの文字しかリストされていません(英語の単語)
-m:文字数
cat /etc/man.config | wc
// , , ,
teeは二重配向し,ファイル/デバイスに格納しながら画面に出力して処理を継続する.
tee [-a] file
パラメータ:
[-a]:ファイルに累積(append)で出力します.
ls -l / | tee -a file.list | more
// file.list , more 。
tr情報中の文字を削除したり、文字情報の変換を行ったりします.
tr [-ds] XXX ...
パラメータ:
-d:情報中のXXXという文字列を削除する
-s:重複する文字を置換
last | tr '[a-z]' '[A-Z]'
// last
col特殊文字の処理
col [-xb]
パラメータ:
-x:tabキーを対等のスペースキーに変換
-b:文字内にスラッシュ(/)がある場合は、スラッシュの最後に続く文字のみを保持します.
cat /etc/man.config | col -x | cat -A | more
// /etc/man.config [tab] , 。
joinは2つのファイルに同じデータがある行を加算します.
join [-ti12] file1 file2
パラメータ:
-t:joinはデフォルトでデータをスペースで区切り、「最初のフィールド」のデータと比較します.2つのファイルが同じ場合は、2つのデータを1行に接続し、最初のフィールドを最初のフィールドに配置します.
-i:大文字小文字は無視
-1:(数値1)最初のファイルを比較するフィールド
-2:2番目のファイルを比較するフィールド
join -t ':' -1 4 /etc/passwd -2 3 /etc/group
// ':' , 4 , 3 , 。
pasteは2つのファイルを貼り合わせ、真ん中を[tab]キーで隔てます.
paste [-d] file1 file2
パラメータ:
-d:後に区切り記号を付けることができます.デフォルトは[tab]で区切ります.
-:file部分が-、standard inputからのデータを表す
cat /etc/group|paste /etc/passwd /etc/shadow - |head -n 3
// /etc/group , /etc/passwd /etc/shadow , 。
expand[tab]ボタンをスペースキーに変更
expand [-t] file
パラメータ:
-t:後に数字を付けることができます.tabを表すにはいくつかのスペースで表します.
xargsはstdinのデータを読み込み、スペースまたは断行で分解し、stdinのデータをargumentsに分割する.
xargs [-0epn] command
パラメータ:
-0:入力したstdinに`,,スペースキーなどの特殊文字が含まれている場合、このパラメータは一般文字に復元できます.
-e:EOF(end of file)という意味で、後ろに文字列を付けることができます.xargsがこの文字列を分析すると、作業を停止します.
-p:各コマンドのパラメータを実行すると、ユーザーの意見が聞かれます
-n:後続回数
cut -d ':' -f1 /etc/passwd | xargs -p -e'lp' finger
// lp , stdin xargs 。
例を挙げる
フォルダの下のjavaコードのファイル数を統計したい場合は
find [folderPath] -name "*.java" | wc -l
もし私がjavaコードの行数をすべて検索したいなら?
wc-l filenameは単一ファイルの行数をクエリーできるのでxargsを使用できます.
find [folerPath] -name "*.java" | xargs wc -l
空白行を削除するには
find [folderPath] -name "*.java" |xargs cat| grep -v ^$|wc -l