리눅스 분류
txt 파일에서 원하는 부분만 출력하는 질문입니다.
작성자 정보
- 눈물많은OrOi 작성
- 작성일
컨텐츠 정보
- 2,139 조회
- 2 댓글
- 0 추천
- 목록
본문
[job]$ cat log.txt | grep relhum | sed s/"current status"/""/ | tail -5
Tue Jun 03 05:02:57 KST 2014, [INFO] : Run 8701, status Grab, mode Normal, lastrun 8601, remain 3590, count 0, lastmeas 1.8 0.58, temp 22.8`C, relhum 16%, pump 50mA, hv 2218V.
Tue Jun 03 06:04:39 KST 2014, [INFO] : Run 8801, status Grab, mode Normal, lastrun 8701, remain 3589, count 0, lastmeas 1.48 0.54, temp 22.8`C, relhum 16%, pump 40mA, hv 2218V.
Tue Jun 03 07:06:20 KST 2014, [INFO] : Run 8901, status Grab, mode Normal, lastrun 8801, remain 3590, count 0, lastmeas 1.38 0.52, temp 22.5`C, relhum 16%, pump 40mA, hv 2218V.
Tue Jun 03 08:08:01 KST 2014, [INFO] : Run 9001, status Grab, mode Normal, lastrun 8901, remain 3590, count 0, lastmeas 1.38 0.52, temp 22.5`C, relhum 15%, pump 50mA, hv 2236V.
Tue Jun 03 09:09:44 KST 2014, [INFO] : Run 9101, status Grab, mode Normal, lastrun 9001, remain 3589, count 0, lastmeas 1.2 0.49, temp 22.5`C, relhum 15%, pump 50mA, hv 2236V.
[job]$
sed 명령으로 'current status' 삭제를 했습니다. 그런데도 한줄이 너무 길어서 굵은색 부분만 출력 할수 있는 명령이나 방법을 찾고 있습니다.
제가 원하는 출력은
Tue Jun 03 05:02:57 Run 8701 temp 22.8`C, relhum 16%, pump 50mA, hv 2218V
Tue Jun 03 06:04:39 Run 8801 temp 22.8`C, relhum 16%, pump 40mA, hv 2218V
Tue Jun 03 07:06:20 Run 8901 temp 22.5`C, relhum 16%, pump 40mA, hv 2218V
Tue Jun 03 08:08:01 Run 9001 temp 22.5`C, relhum 15%, pump 50mA, hv 2236V
Tue Jun 03 09:09:44 Run 9101 temp 22.5`C, relhum 15%, pump 50mA, hv 2236V
이렇게 출력을 원합니다 만, 방법이 없다면 temp 부터 뒷쪽만 나와도 괜찮습니다.
Tue Jun 03 05:02:57 KST 2014, [INFO] : Run 8701, status Grab, mode Normal, lastrun 8601, remain 3590, count 0, lastmeas 1.8 0.58, temp 22.8`C, relhum 16%, pump 50mA, hv 2218V.
Tue Jun 03 06:04:39 KST 2014, [INFO] : Run 8801, status Grab, mode Normal, lastrun 8701, remain 3589, count 0, lastmeas 1.48 0.54, temp 22.8`C, relhum 16%, pump 40mA, hv 2218V.
Tue Jun 03 07:06:20 KST 2014, [INFO] : Run 8901, status Grab, mode Normal, lastrun 8801, remain 3590, count 0, lastmeas 1.38 0.52, temp 22.5`C, relhum 16%, pump 40mA, hv 2218V.
Tue Jun 03 08:08:01 KST 2014, [INFO] : Run 9001, status Grab, mode Normal, lastrun 8901, remain 3590, count 0, lastmeas 1.38 0.52, temp 22.5`C, relhum 15%, pump 50mA, hv 2236V.
Tue Jun 03 09:09:44 KST 2014, [INFO] : Run 9101, status Grab, mode Normal, lastrun 9001, remain 3589, count 0, lastmeas 1.2 0.49, temp 22.5`C, relhum 15%, pump 50mA, hv 2236V.
[job]$
sed 명령으로 'current status' 삭제를 했습니다. 그런데도 한줄이 너무 길어서 굵은색 부분만 출력 할수 있는 명령이나 방법을 찾고 있습니다.
제가 원하는 출력은
Tue Jun 03 05:02:57 Run 8701 temp 22.8`C, relhum 16%, pump 50mA, hv 2218V
Tue Jun 03 06:04:39 Run 8801 temp 22.8`C, relhum 16%, pump 40mA, hv 2218V
Tue Jun 03 07:06:20 Run 8901 temp 22.5`C, relhum 16%, pump 40mA, hv 2218V
Tue Jun 03 08:08:01 Run 9001 temp 22.5`C, relhum 15%, pump 50mA, hv 2236V
Tue Jun 03 09:09:44 Run 9101 temp 22.5`C, relhum 15%, pump 50mA, hv 2236V
이렇게 출력을 원합니다 만, 방법이 없다면 temp 부터 뒷쪽만 나와도 괜찮습니다.
관련자료
-
이전
-
다음
댓글 2
정우영님의 댓글
- 정우영
- 작성일
뭐 sed를 몇번 써서 불필요한 부분 날려 버림 될 듯 한데요~
cat a.txt | grep relhum | sed "s/KST.*://g" | sed "s/,.*temp/temp/g" | tail -5
Tue Jun 03 05:02:57 Run 8701temp 22.8`C, relhum 16%, pump 50mA, hv 2218V.
Tue Jun 03 06:04:39 Run 8801temp 22.8`C, relhum 16%, pump 40mA, hv 2218V.
Tue Jun 03 07:06:20 Run 8901temp 22.5`C, relhum 16%, pump 40mA, hv 2218V.
Tue Jun 03 08:08:01 Run 9001temp 22.5`C, relhum 15%, pump 50mA, hv 2236V.
Tue Jun 03 09:09:44 Run 9101temp 22.5`C, relhum 15%, pump 50mA, hv 2236V.
또는 awk 쓰던가요~
cat log.txt | awk '{print $1" "$2" "$3" "$4" "$9" "$10" "$24" "$25" "$26" "$27" "$28" "$29" "$30" "$31}'
Tue Jun 03 05:02:57 Run 8701, temp 22.8`C, relhum 16%, pump 50mA, hv 2218V.
Tue Jun 03 06:04:39 Run 8801, temp 22.8`C, relhum 16%, pump 40mA, hv 2218V.
Tue Jun 03 07:06:20 Run 8901, temp 22.5`C, relhum 16%, pump 40mA, hv 2218V.
Tue Jun 03 08:08:01 Run 9001, temp 22.5`C, relhum 15%, pump 50mA, hv 2236V.
Tue Jun 03 09:09:44 Run 9101, temp 22.5`C, relhum 15%, pump 50mA, hv 2236V.
cat a.txt | grep relhum | sed "s/KST.*://g" | sed "s/,.*temp/temp/g" | tail -5
Tue Jun 03 05:02:57 Run 8701temp 22.8`C, relhum 16%, pump 50mA, hv 2218V.
Tue Jun 03 06:04:39 Run 8801temp 22.8`C, relhum 16%, pump 40mA, hv 2218V.
Tue Jun 03 07:06:20 Run 8901temp 22.5`C, relhum 16%, pump 40mA, hv 2218V.
Tue Jun 03 08:08:01 Run 9001temp 22.5`C, relhum 15%, pump 50mA, hv 2236V.
Tue Jun 03 09:09:44 Run 9101temp 22.5`C, relhum 15%, pump 50mA, hv 2236V.
또는 awk 쓰던가요~
cat log.txt | awk '{print $1" "$2" "$3" "$4" "$9" "$10" "$24" "$25" "$26" "$27" "$28" "$29" "$30" "$31}'
Tue Jun 03 05:02:57 Run 8701, temp 22.8`C, relhum 16%, pump 50mA, hv 2218V.
Tue Jun 03 06:04:39 Run 8801, temp 22.8`C, relhum 16%, pump 40mA, hv 2218V.
Tue Jun 03 07:06:20 Run 8901, temp 22.5`C, relhum 16%, pump 40mA, hv 2218V.
Tue Jun 03 08:08:01 Run 9001, temp 22.5`C, relhum 15%, pump 50mA, hv 2236V.
Tue Jun 03 09:09:44 Run 9101, temp 22.5`C, relhum 15%, pump 50mA, hv 2236V.
눈물많은OrOi님의 댓글의 댓글
- 눈물많은OrOi
- 작성일
답변 감사드립니다.
해결이 한방에 됐습니다. ^^
해결이 한방에 됐습니다. ^^