linux 명령의 디렉터리 모니터링 문자열 분리 모니터링 명령 실행 결과 통계 줄 제거 텍스트 머리말 공백 찾기 카드 이름 부동 점수 연산 등 명령 사용 기교

지난번에 여러분께 Linux 명령 테크닉 30가지 필수 명령 테크닉 소개를 드렸는데, 오늘은 여러분께 비교적 실용적인 명령 사용 기교를 소개하겠습니다
1. 모니터링 디렉터리, 새로 만든 파일 이름을 로그에 추가

# inotify-tools 
#!/bin/bash
MON_DIR=/opt
inotifywait -mq --format %f -e create $MON_DIR |\
while read files; do
echo $files >> test.log
done
2,find 한 번에 여러 개의 지정된 파일 형식 찾기

# find ./ -name '*.jpg' -o -name '*.png'
# find ./ -regex ".*\.jpg\|.*\.png"
3, 문자열 분할

# echo "hello" |awk -F '' '{for(i=1;i<=NF;i++)print $i}'
# echo "hello" |sed 's/./&
/g' # echo "hello" |sed -r 's/(.)/\1
/g'
4. 실시간 모니터링 명령 실행 결과

`# watch -d -n 1 'ifconfig'`
5. 우편물 부호 문제 해결

# echo `echo "content" | iconv -f utf8 -t gbk` | mail -s "`echo "title" | iconv -f utf8 -t gbk`" [email protected]
참고: iconv 도구를 통해 내용 문자 집합을 변환합니다.
6. 텍스트에 세 줄마다 줄 바꾸기 또는 내용 추가

# sed '4~3s/^/
/' file # awk '$0;NR%3==0{print "
"}' file # awk '{print NR%3?$0:$0 "
"}' file
7. 일치하는 줄 및 뒷줄 또는 앞줄 삭제

# sed '/abc/,+1d' file # 
# sed '/abc/{n;d}' file # 
# tac file |sed '/abc/,+1d' |tac # 
8. 본점 수 통계
메서드 1 # wc -l file 메서드 2# grep -c . file메서드 3 # awk 'END{print NR}' file메서드 4# sed -n '$=' file9. 텍스트 시작 및 끝 공백 제거

# sed -i 's/^[ \t]*//;s/[ \t]*$//' file
10. 단일 IP에 큰따옴표 추가

# echo '10.10.10.1 10.10.10.2 10.10.10.3' |sed -r 's/[^ ]+/"&"/g'
# echo '10.10.10.1 10.10.10.2 10.10.10.3' |awk '{for(i=1;i<=NF;i++)printf "\047"$i"\047"}'
11. 스크립트에서 인쇄 대기 시간

wait(){
echo -n "wait 3s"
for ((i=1;i<=3;i++)); do
echo -n "."
sleep 1
done
echo
}
wait
12. 지정한 줄 삭제

# awk 'NR==1{next}{print $0}' file #$0 
# awk 'NR!=1{print}' file
# awk 'NR!=1{print $0}'  :awk '!/test/{print $0}'
# sed '1d' file
# sed -n '1!p' file
13.지정한 줄 앞뒤로 한 줄 추가
두 번째 줄 앞 줄에 txt:

# awk 'NR==2{sub('/.*/',"txt
&")}{print}' a.txt # sed'2s/.*/txt
&/' a.txt
두 번째 줄 다음 줄에 txt:

# awk 'NR==2{sub('/.*/',"&
txt")}{print}' a.txt # sed'2s/.*/&
txt/' a.txt
14. IP를 통한 네트워크 카드 이름 얻기

# ifconfig |awk -F'[: ]' '/^eth/{nic=$1}/192.168.18.15/{print nic}'
15, 부동 소수점 연산 (숫자 46 소수점 유지)

# awk 'BEGIN{print 46/100}' 
0.46
# echo 46|awk '{print $0/100}'
0.46
# awk 'BEGIN{printf "%.2f
",46/100}' 0.46 # echo 'scale=2;46/100' |bc|sed 's/^/0/' 0.46 # printf "%.2f
" $(echo "scale=2;46/100" |bc) 0.46
16. 부동 소수점 비교
방법 1:

if [ $(echo "4>3"|bc) -eq 1 ]; then
echo yes
else
echo no
fi
방법 2:

if [ $(awk 'BEGIN{if(4>3)print 1;else print 0}') -eq 1 ]; then
echo yes
else
echo no
fi
17. 줄 바꿈 문자는 쉼표로 바꾸기

$ cat a.txt
1:
2
3
교체 후: 1,2,3
방법 1:

$ tr '
' ',' < a.txt $ sed ':a;N;s/
/,/;$!b a' a.txt $ sed ':a;$!N;s/
/,/;t a' a.txt :
방법 2:

while read line; do
a+=($line)
done < a.txt
echo ${a[*]} |sed 's/ /,/g'
방법 3:

awk '{s=(s?s","$0:$0)}END{print s}' a.txt
세 개의 연산자(a?b:c), 첫 번째 s는 변수, s?","$0: $0, 첫 번째 처리 1 시 s 변수는 값을 가짜로 부여하지 않았습니다. 결과는 1을 인쇄하고 두 번째 처리 2 시 s 값은 1입니다. 진실입니다. 결과는 1,2입니다.이와 같이 소괄호는 쓰지 않아도 된다.

awk '{if($0!=3)printf "%s,",$0;else print $0}' a.txt
18. 윈도우즈에서 linux로 텍스트 숨기기 제거
메서드 1: 파일을 열고 입력:set fileformat=unix메서드 2: 파일을 열고 입력:%s/\r*$// #^M \r 방법 3:sed -i 's/^M//g' a.txt #^M ctrl+v, ctrl+m방법 4:dos2unix a.txt19.xargs 교묘한 사용
xargs-n1#단일 필드를 한 줄로 만들기

# cat a.txt
1 2
3 4
# xargs -n1 < a.txt
1
2
3
4
xargs -n2 # 
$ cat b.txt
string
number
a
1
b
2
$ xargs -n2 < a.txt
string number
a 1
b 2
20. 현재 디렉터리를 집계합니다.html 끝 파일 총 크기
방법 1:

# find . -name "*.html" -maxdepth 1 -exec du -b {} \; |awk '{sum+=$1}END{print sum}'
방법 2:

for size in $(ls -l *.html |awk '{print $5}'); do
sum=$(($sum+$size))
done
echo $sum
귀속 통계:

# find . -name "*.html" -exec du -k {} \; |awk '{sum+=$1}END{print sum}'
이번에는 주로 linux의 디렉터리 감시 문자열 분할 감시 명령 운행 결과 통계 줄 수 제거 텍스트 머리말 공백 얻기 카드 이름 부동점수 연산 등 명령 사용 방법을 소개했습니다. 더 재미있는 명령 사용 기교는 아래의 관련 글을 보십시오.

좋은 웹페이지 즐겨찾기