linux シェル学習ノート 1日目
以下は、Shellの学習1~2日目のメモです。
--------- 私はデリミタ- --------。
<スパン
ハードウェアは実行に移り、カーネルはハードウェアで操作する。
コマンドパーサーです。
シェルスクリプトの構成要素
-
システムコマンド
-
<スパン テキスト処理ツール(sort, grep, sed, awk...)
-
変数
-
条件付き判定
-
ループ構造
-
機能
<スパン シェルスクリプトセンター(SSC)
---------- ---------- --------
<スパン
非負のGrep / awk
<スパン
日間。統計情報 Wc
ソート sort|head / sed
フィールド処理 awk
<スパン
データ領域決定 awk |wc
表示テキスト:echo [オプション] テキスト
-n 自動改行しない
-e エスケープを解析する
<スパン
警告音を鳴らす
c 最後に改行がない場合
f 改行
<スパン
r エンター
<スパン
カラーテキスト
Echo -e "33[40;35m...]"
echo "Hello,world"
echo -e "33[40;35mHell,world33[0m"
sort [オプション] 入力ファイル
-o 出力ファイル
<スパン
-辞書順 a-z で並べ替え
-n 数字のサイズ0〜9で出力
-r 逆順出力 z-a 9-0
-k 分類がドメイン上の数値分類であることを指定します。
-t フィールドスプリッター; ノンスペースまたはタブキーでフィールドを分割します。
その他の /etc/passwd のページ分割表示
sort -d /etc/passwd|more 真ん中の|は倒置表記です。先に処理したものを後に処理するようにする ソートを先にする。ページングを後にする
sort -k3 -n -r -t: /etc/passwd|more
<スパン
大きなものから小さなものまで
wc [引数] [ファイル名]を指定します。
-c 文字数を数える
-l 行数を数える
-w 数えた単語数 区別するためのスペース
diff [オプション] file/directory file/directory
diff /etc/passwd /etc/passwd.bak
-q 差異がある場合のみ表示し、詳細は表示しない
-c 内側のテキストをすべて表示し、相違点をマークします。
-b は空白文字の違いをチェックしない
-B 空白行をチェックしない
-r サブディレクトリ内のファイルを比較します。
<スパン
grep検索マッチ 正規表現に対応
グレップ
-c マッチするパターンの行番号表記のみを出力する
-I 大文字と小文字の区別をしない
-n 各行の行番号の前に表示する
-v 逆出力、不一致行の表示
-f ファイル マッチする文字列のリストが filezhong
grep '[Tt]his' file1.txt セットケース
grep '^[^#]' file2.txt は行頭にマッチしません。
grep "s...n" file3.txt 任意の文字にマッチします。
sedライン編集コマンド
s 代替品
i インサート
a 追加
d 一致する行をすべて削除する
D 最初にマッチした行を削除する
<スパン
sedでできること("line" ベース)
<スパン
削除
<スパン
変更
<スパン
追加
挿入
<スパン
交換
例
sed -n '1,4p' /etc/passwd p は print -n で元のファイルを表示しない 1~4行目を印刷する。
sed '/80/D' file.txt 80 行目の最初の出現箇所を削除する
sed 's/var/usr/g' file.txt すべての var を usr g に置き換えて、すべてを表示します。
sed '50,$s/help/man/g' file.txt 50行目からヘルプの最終行までをmanの最初の49行に関係なく置き換えます。
awk は行だけでなく列も処理することができ、どの行のどの列かを特定することができます。
awk [オプション] 'awk スクリプト' 入力ファイル
-F fs 入力レコードのフィールド区切り文字としてfsを使用 = sort -t
-f ファイル名 ファイルから awk_script (awk スクリプト) を読み込む filename
-v var=value awk_script 用の変数を設定する
awk 用の組み込み変数
例
awk -F : '{print NR,$1,$2}' /etc/passwd
awk -F : '{print NR,$1,$NF}' /etc/passwd $NF 最後の行を抽出します。
awk -F : 'NR%10==5{PRINT nr,$0}' /etc/passwd NR= 現在処理中の行数 divide by 10 remainder=5 出力用の現在の行数 $0 全行出力、例えば 5, 15, 25 print out
awk -F : 'NR==8,NR==13 {print NR,$0}' /etc/passwd 8行目と13行目を指定します。
<スパン
awk の仕組み (ツール)
NF $NR $1 1列目 $2 2列目 $0 一行全体
<スパン
実際のテスト
awk -F: '{print $1,$3}'/etc/passwd
awk -F: '{print $1,$NF}'/etc/passwd
awk -F: '{print NR,$1,$NF}'/etc/passwd NR 行番号
awk -F: 'NR==5,NR==8{print NR,$1,$NF}'/etc/passwd 5-8行目を指定する。
awk -F: 'NR%10==5{print NR,$1,$NF}'/etc/passwd 10 で割って余りを求めます。
<スパン
サンプルコーステスト
<スパン
1. grep -v "-" file.txt マイナス記号のあるデータをすべて削除 -v none の場合は - のみが表示されます。
2. wc -l file.txt すべての行を表示する grep -v "-" file.txt |wc -l 負数のない行をすべて数える
3. sort -n -r -k4 file.txt |sed -n '1p' sort fourth column no separator (i'e s space), -n number -r from largest to smallest sed pipe show first line sed -n does not show original file.
sort -n -r -k4 file.txt |head -1 最初のデータを読み込む head 最初の行
4. awk '{if($NF>3){print $0}}' file.txt NF 最後の列が 3 より大きい場合、1 行全体を表示する
5. awk '{if($4>0,&&$4<15){print $0}}' file.txt 4列目をリストアップ 0より大きい 15より小さい 全体の行を出力する
awk '{if($4>0,&&$4<15){print $0}}' file.txt |wc -l 行を表示する
<スパン
運動する
-
grepとawk
awk '{if($1>200801011){[print $0}}'file.txt
2.
<スパン
注文のレビューを処理しています。
統計テキストwc
<スパン
テキストソートソート
テキスト/ディレクトリ比較の差分
<スパン
ファイルのキー行を検索する grep / sed
<スパン
行内文字列の追加、削除、変更 sed
指定した列を列テキストで表示する awk
列テキストで計算する awk
列テキストでの条件付き選択 awk
関連
-
スクリプトとは何かを簡単に説明します。
-
[解決済み】c++のコンパイルエラーです。ISO C++はポインタと整数の比較を禁止しています。
-
[解決済み】エラー「C++はメソッド定義中のすべての宣言に型指定子を必要とする」。
-
[解決済み】' ' への呼び出しにマッチする関数がない
-
[解決済み】正規表現における「.-」の意味とは?
-
[解決済み】この宣言は、C++でストレージクラスまたは型指定子を持っていない
-
[解決済み】Javascript Uncaught TypeError: 未定義のプロパティ'0'を読み取れない
-
[解決済み】エラー: 'const ...' を '...' の 'this' 引数として渡すと、修飾子が破棄される
-
[解決済み】C++ エラー: 'std::bad_alloc' のインスタンスを投げた後に呼び出されたターミネート
-
[解決済み] 境界外の添え字 - 一般的な定義と解決策?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】R: predict() で数値 'envir' 引数が長さ1でない。)
-
[解決済み] 式は変更可能なlvalueでなければならない
-
[解決済み】このリポジトリで別のgitプロセスが動作しているようです。
-
[解決済み】C#でクエスチョンマークを2つ並べるとどんな意味になるのか?
-
[解決済み】 math.hヘッダーをインクルードしているのに、「undefined reference to sqrt」エラーが発生するのはなぜですか?[重複しています。]
-
[解決済み] Django - そのようなテーブルがない例外
-
[解決済み】Python: TypeError: cannot concatenate 'str' and 'int' objects [duplicate] Python: TypeError: cannot concatenate 'str' and 'int' object [duplicate
-
[解決済み】C 言語のポインタと配列。[警告] 整数からキャストなしでポインタを作る代入 [クローズド]
-
[解決済み】Macでポート3000をロックしているプロセスを検索(およびkill)する
-
[解決済み】文字列リテラルとの比較の結果、不特定の動作になる?