目次
3. Sed ストリーム エディター (一般的に使用され、テキストを置き換えます)
1、sed -i 's/#rm -f \/a\/b/rm -f \/a\/b/g' hello/file
2、 sed -i の/^bind-address.*/bind-address = 0.0.0.0/' $MYSQL_CONF_FILE
3、 Sed -r 's/root/ROOT/gi/' /etc/passwd
1. 正規表現
。 |
ls 。TXT |
現在のディレクトリ内の .txt で終わるファイルと一致します |
* |
grep 'a * ' file.txt |
ファイル内で文字 a が連続して出現するすべての文字と一致します。 |
+ |
grep 'b a+ ' file.txt |
b の後に 1 つ以上の a が続く構成ファイル内のすべての文字列。 |
? |
grep 'コロウ? r'ファイル.txt |
ファイル内の色または色を含む文字列と一致します。 |
[ ] |
grep ' [クレジット] ' file.txt |
ファイル内の任意の母音を含む任意の文字列と一致します |
[^] |
'grep ' [^ 0-9 ] ' file.txt |
ファイル内の数字を含まない行に一致します |
- |
grep '[a - z]' file.txt |
ファイル内の小文字を含む文字列と一致します |
\b |
grep ' \b word \b ' file.txt |
ファイル内の個々の単語と一致します |
^ |
grep ' ^ start' file.txt |
ファイル内の start で始まる行と一致します。 |
$ |
grep 'end $ ' file.txt |
ファイル内の end で終わる行と一致します。 |
次に、 grep の使用
cat test.txt |grep ^u |
test.txt の u で始まる行の内容を調べます。 |
cat test.txt |grep ^[^u] |
test.txt 内のu で始まらない行の内容を調べます。 |
猫 /etc/passwd | grep -n ルート |
/etc/passwd を取り出し、root が表示されている行を取り出し、(-n) で行番号を表示します。 |
psから| トイレ-L |
プロセス数を表示する |
grep "wl" 1.txt 2.txt 3.txt |
1.txt、2.txt、3.txt で wl を検索 |
grep -r "wl" パス/inc |
path/inc で wl を再帰的に検索します |
grep "wl" パス/*.txt |
パス ディレクトリ内のすべての txt、wl を検索 |
3. sed ストリーム エディタ (通常はテキストの置換に使用されます)
1、sed -i 's/#rm -f \/a\/b/rm -f \/a\/b/g' hello/file
-i: 元のファイルを直接編集します
s は置換操作の開始を示します
g はグローバル置換を意味します (g がない場合、複数の行が表示され、1 行に複数の出現がある場合、各行の最初の行のみが置換されます)
#rm -f \/a\/b/置換されるパターンは #rm -f /a/b のテキストです
rm -f \/a\/b/ は置換されたパターンであり、rm -f /a/b のテキストです。
hello/file 内の #rm -f /a/b を rm -f /a/b に置き換えることを示します
2、 sed -i の/^bind-address.*/bind-address = 0.0.0.0/' $MYSQL_CONF_FILE
^bind-address.*: 「bind-address」で始まる行と一致します。
binding-address = 0.0.0.0: 一致する動作「bind-address = 0.0.0.0」を置き換えます。
3、 Sed -r 's/root/ROOT/gi/' /etc/passwd
etc/passwd ディレクトリ内のすべてのファイル (-r) について、テキスト (i) 内のすべての (g) ルートを ROOT に置き換えます。
4. エスケープ文字
-r '\crootcd' パスワードを参照してください。
Sed -r '\#root#d' passwd (\ はエスケープ文字として、# を通常の文字として扱うように sed に指示します)
passwd のルートを削除すると、2 つの # は任意の文字に置き換えることができます
4 番目に、awk の使用 (出力列用)
awk '{print $2}' file.txt |
file.txt の 2 番目の列を出力します。 |
awk -F':' '{print $1, $NF}' /etc/passwd |
: を区切り文字として使用し、最初と最後の列を出力します。 |
awk -va=1 '{print $1,$1+a}' log.txt |
-va=1、変数 a を指定し、値 1 を割り当て、最初の列と 2 番目の列の内容を出力します。 |