-
Notifications
You must be signed in to change notification settings - Fork 0
/
awk-me
25 lines (18 loc) · 1.34 KB
/
awk-me
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
---
tags: [shell, awk]
---
# condition print
awk -F "," '{if (NF==6) print "39 00 04",$2,$4,$5,$6; else if (NF==4) print "15 00 02",$2,$4; else if (NF==3) print "05 00 01",$2; else print $0}' ili9881-1.txt > ili9881-3.txt
awk -F "," '{if (NF==6) printf "39 00 04 %s %s %s %s\n",$2,$4,$5,$6; else if (NF==4) printf "15 00 02 %s %s\n",$2,$4; else if (NF==3) printf "05 00 01 %s\n",$2; else print $0}' ili9881-1.txt > ili9881-4.txt
# delete comment, grep multi keyword, extract field and condition print
sed -e 's@//.*@@g' lcd.txt |grep -E 'Generic|DCS|Delay' |awk -F "[()]" '{print $2}' |awk -F "," '{if (NF==2) print "15 00 02",$1,$2; else print "05 00 01",$1}' > lcd-out.txt
# show sub-diretory and concat to a line
echo `ls -l |awk '/^d/ {print $NF}'`
# awk substr function
grep ^{ jd9365.txt |awk -F "[{}]" '{print $2,$3}' |awk -F ',' '{print "15 00 02",substr($1,3,2), substr($3,4,2)}' > jd9365-result.txt
# .dts to .dtbo
ls -l *.dts |awk '{print $NF}' |sort |sed -e 's/.dts/.dtbo\ \\/g'
# find two consecutive lines that contains same keyword
awk -v keyword="motor_thread_handle" 'NR==1 {if ($0 ~ keyword) prev=1; else prev=0} NR>1 {if ($0 ~ keyword && prev==1) print NR-1, NR ": " $0; prev=($0 ~ keyword)}' kernel.log
# find consecutive duplicate lines
awk 'NR==1 {prev=$0} NR>1 {if ($0==prev) print "Duplicate lines found:" NR-1, NR; prev=$0}' yourfile.txt