목차
3. Sed 스트림 편집기(일반적으로 사용 및 대체 텍스트)
1, sed -i 's/#rm -f \/a\/b/rm -f \/a\/b/g' 안녕하세요/파일
2, sed -i 's/^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 * ' 파일.txt |
파일에서 문자 a가 연속적으로 나타나는 모든 항목과 일치합니다. |
+ |
grep 'b a+ ' 파일.txt |
b 뒤에 하나 이상의 a가 오는 구성 파일의 모든 문자열입니다. |
? |
grep '콜루 ? r'파일.txt |
파일에 색상이나 색상이 포함된 문자열과 일치합니다. |
[ ] |
grep ' [ 신용 ] ' file.txt |
파일에 모음이 포함된 문자열을 일치시킵니다. |
[^] |
'grep' [^ 0-9 ] ' 파일.txt |
숫자를 포함하지 않는 파일의 행과 일치합니다. |
- |
grep '[a - z]' 파일.txt |
파일에서 소문자가 포함된 문자열을 일치시킵니다. |
\비 |
grep ' \b 단어 \b ' file.txt |
파일의 개별 단어 단어 일치 |
^ |
grep ' ^ start' 파일.txt |
파일에서 start로 시작하는 줄과 일치합니다. |
$ |
grep 'end $ ' 파일.txt |
end로 끝나는 파일의 행과 일치합니다. |
두 번째, grep을 사용하는 방법
고양이 test.txt |grep ^u |
test.txt에서 u로 시작하는 줄의 내용을 찾아보세요. |
고양이 test.txt |grep ^[^u] |
test.txt에서 u로 시작 하지 않는 줄의 내용을 찾아보세요. |
고양이 /etc/passwd | grep -n 루트 |
/etc/passwd를 가져와 루트가 나타나는 줄을 제거하고 (-n) 줄 번호를 표시합니다. |
추신 : | 화장실 |
프로세스 수를 표시 |
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' 안녕하세요/파일
-i: 원본 파일에서 직접 편집
s는 교체 작업의 시작을 나타냅니다.
g는 전역 교체를 의미합니다(g가 없고 여러 줄이 나타나고 한 줄에 여러 번 발생하는 경우 각 줄의 첫 번째 줄만 교체됩니다).
#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 's/^bind-address.*/bind-address = 0.0.0.0/' $MYSQL_CONF_FILE
^bind-address.*: "bind-address"로 시작하는 행을 일치시킵니다.
바인딩 주소 = 0.0.0.0: 일치하는 동작 "바인드 주소 = 0.0.0.0"을 대체합니다.
3, Sed -r 's/root/ROOT/gi/' /etc/passwd
etc/passwd 디렉토리의 모든 파일(-r)에 대해 모든(g) 루트(들)를 텍스트(i)의 ROOT로 바꿉니다.
4. 이스케이프 문자
-r '\crootcd' 비밀번호를 참조하세요.
Sed -r '\#root#d' passwd (\는 이스케이프 문자로, sed에게 #을 일반 문자로 처리하도록 지시)
passwd에서 루트를 삭제하면 두 개의 #은 임의의 문자로 대체될 수 있습니다.
넷째, awk 사용(출력 열용)
awk '{print $2}' file.txt |
file.txt의 두 번째 열을 인쇄합니다. |
awk -F':' '{인쇄 $1, $NF}' /etc/passwd |
:를 구분 기호로 사용하면 첫 번째 열과 마지막 열을 인쇄합니다. |
awk -va=1 '{print $1,$1+a}' log.txt |
-va=1, 변수 a를 지정하고 값 1을 할당한 다음 첫 번째 열과 두 번째 열의 내용을 출력합니다. |