Select csv 命令输出中列后的值
Select value after a column in a csv command output
我试图只从我的 gps-programm-output 中读出坐标。
为了得到下面的结果,我使用了下面的命令
minicom -b 9600 -o -D /dev/ttyAMA0 -C /home/logreader/logs/log.txt
我想我要找的是 grep
命令,我只是不知道如何在我的文本文件上使用它。以下是 bash
控制台的输出。我只想要 $GNGLL
后面的值
$GLGSV,3,2,09,76,20,279,13,77,14,337,29,84,21,102,29,85,67,056,20*63
$GLGSV,3,3,09,86,39,312,29*53
$GNGLL,4723.67569,N,00803.07350,E,091749.00,A,D*73
$GNRMC,091750.00,A,4723.67574,N,00803.07351,E,0.065,,191017,,,D*63
$GNVTG,,T,,M,0.065,N,0.120,K,D*38
$GNGGA,091750.00,4723.67574,N,00803.07351,E,2,12,0.67,382.9,M,47.3,M,,0000*47
$GNGSA,A,3,08,01,16,11,27,10,22,32,28,,,,1.18,0.67,0.97*1A
$GNGSA,A,3,76,85,71,86,69,70,77,84,,,,,1.18,0.67,0.97*1B
$GPGSV,4,1,15,01,19,266,27,04,49,143,39,08,74,293,29,10,58,068,16*7E
$GPGSV,4,2,15,11,30,284,25,14,10,140,,16,19,190,27,18,28,052,*76
$GPGSV,4,3,15,21,04,082,23,22,10,215,30,27,65,138,27,28,09,329,27*75
$GPGSV,4,4,15,30,01,303,,32,20,127,49,33,31,211,44*45
$GLGSV,3,1,09,69,32,038,19,70,61,124,23,71,23,178,19,75,05,235,21*64
$GLGSV,3,2,09,76,20,279,15,77,14,337,29,84,21,102,29,85,67,056,21*64
$GLGSV,3,3,09,86,39,312,29*53
$GNGLL,4723.67574,N,00803.07351,E,091750.00,A,D*76
$GNRMC,091751.00,A,4723.67576,N,00803.07351,E,0.026,,191017,,,D*67
$GNVTG,,T,,M,0.026,N,0.048,K,D*30
$GNGGA,091751.00,4723.67576,N,00803.07351,E,2,12,0.67,383.1,M,47.3,M,,0000*4D
$GNGSA,A,3,08,01,16,11,27,10,22,32,28,,,,1.18,0.67,0.97*1A
$GNGSA,A,3,76,85,71,86,69,70,77,84,,,,,1.18,0.67,0.97*1B
$GPGSV,4,1,15,01,19,266,27,04,49,143,39,08,74,293,29,10,58,068,17*7F
$GPGSV,4,2,15,11,30,284,25,14,10,140,,16,19,190,27,18,28,052,18*7F
$GPGSV,4,3,15,21,04,082,24,22,10,215,30,27,65,138,27,28,09,329,28*7D
$GPGSV,4,4,15,30,01,303,,32,20,127,49,33,31,211,44*45
$GLGSV,3,1,09,69,32,038,19,70,61,124,24,71,23,178,19,75,05,235,21*63
$GLGSV,3,2,09,76,20,279,16,77,14,337,29,84,21,102,30,85,67,056,21*6F
$GLGSV,3,3,09,86,39,312,29*53
$GNGLL,4723.67576,N,00803.07351,E,091751.00,A,D*75
$GNRMC,091752.00,A,4723.67577,N,00803.07350,E,0.010,,191017,,,D*61
$GNVTG,,T,,M,0.010,N,0.018,K,D*30
$GNGGA,091752.00,4723.67577,N,00803.07350,E,2,12,0.67,383.3,M,47.3,M,,0000*4C
$GNGSA,A,3,08,01,16,11,27,10,22,32,28,,,,1.18,0.67,0.97*1A
$GNGSA,A,3,76,85,71,86,69,70,77,84,,,,,1.18,0.67,0.97*1B
$GPGSV,4,1,15,01,19,266,27,04,49,143,40,08,74,293,29,10,58,068,18*7E
$GPGSV,4,2,15,11,30,284,25,14,10,140,,16,19,190,27,18,28,052,16*71
$GPGSV,4,3,15,21,04,082,24,22,10,215,30,27,65,138,28,28,09,329,28*72
$GPGSV,4,4,15,30,01,303,,32,20,127,49,33,31,211,44*45
$GLGSV,3,1,09,69,32,038,19,70,61,124,25,71,23,178,19,75,05,235,21*62
$GLGSV,3,2,09,76,20,279,17,77,14,337,29,84,21,102,30,85,67,056,21*6E
$GLGSV,3,3,09,86,39,312,29*53
$GNGLL,4723.67577,N,00803.07350,E,091752.00,A,D*76
$GNRMC,091753.00,A,4723.67578,N,00803.07348,E,0.043,,191017,,,D*60
$GNVTG,,T,,M,0.043,N,0.079,K,D*31
$GNGGA,091753.00,4723.67578,N,00803.07348,E,2,12,0.67,383.5,M,47.3,M,,0000*4D
$GNGSA,A,3,08,01,16,11,27,10,22,32,28,,,,1.18,0.67,0.97*1A
$GNGSA,A,3,76,85,71,86,69,70,77,84,,,,,1.18,0.67,0.97*1B
$GPGSV,4,1,15,01,19,266,26,04,49,143,40,08,74,293,29,10,58,068,19*7E
$GPGSV,4,2,15,11,30,284,24,14,10,140,,16,19,190,27,18,28,052,15*73
$GPGSV,4,3,15,21,04,082,23,22,10,215,31,27,65,138,28,28,09,329,27*7B
$GPGSV,4,4,15,30,01,303,,32,20,127,49,33,31,211,43*42
$GLGSV,3,1,09,69,32,038,19,70,61,124,25,71,23,178,19,75,05,235,21*62
如果你想和正则表达式一起使用,你可以使用 grep。
这对你有用:
minicom -b 9600 -o -D /dev/ttyAMA0 -C /home/logreader/logs/log.txt | grep -oP '.*(?:$GNGLL,)\K([^\n\r]*)'
我试图只从我的 gps-programm-output 中读出坐标。
为了得到下面的结果,我使用了下面的命令
minicom -b 9600 -o -D /dev/ttyAMA0 -C /home/logreader/logs/log.txt
我想我要找的是 grep
命令,我只是不知道如何在我的文本文件上使用它。以下是 bash
控制台的输出。我只想要 $GNGLL
$GLGSV,3,2,09,76,20,279,13,77,14,337,29,84,21,102,29,85,67,056,20*63
$GLGSV,3,3,09,86,39,312,29*53
$GNGLL,4723.67569,N,00803.07350,E,091749.00,A,D*73
$GNRMC,091750.00,A,4723.67574,N,00803.07351,E,0.065,,191017,,,D*63
$GNVTG,,T,,M,0.065,N,0.120,K,D*38
$GNGGA,091750.00,4723.67574,N,00803.07351,E,2,12,0.67,382.9,M,47.3,M,,0000*47
$GNGSA,A,3,08,01,16,11,27,10,22,32,28,,,,1.18,0.67,0.97*1A
$GNGSA,A,3,76,85,71,86,69,70,77,84,,,,,1.18,0.67,0.97*1B
$GPGSV,4,1,15,01,19,266,27,04,49,143,39,08,74,293,29,10,58,068,16*7E
$GPGSV,4,2,15,11,30,284,25,14,10,140,,16,19,190,27,18,28,052,*76
$GPGSV,4,3,15,21,04,082,23,22,10,215,30,27,65,138,27,28,09,329,27*75
$GPGSV,4,4,15,30,01,303,,32,20,127,49,33,31,211,44*45
$GLGSV,3,1,09,69,32,038,19,70,61,124,23,71,23,178,19,75,05,235,21*64
$GLGSV,3,2,09,76,20,279,15,77,14,337,29,84,21,102,29,85,67,056,21*64
$GLGSV,3,3,09,86,39,312,29*53
$GNGLL,4723.67574,N,00803.07351,E,091750.00,A,D*76
$GNRMC,091751.00,A,4723.67576,N,00803.07351,E,0.026,,191017,,,D*67
$GNVTG,,T,,M,0.026,N,0.048,K,D*30
$GNGGA,091751.00,4723.67576,N,00803.07351,E,2,12,0.67,383.1,M,47.3,M,,0000*4D
$GNGSA,A,3,08,01,16,11,27,10,22,32,28,,,,1.18,0.67,0.97*1A
$GNGSA,A,3,76,85,71,86,69,70,77,84,,,,,1.18,0.67,0.97*1B
$GPGSV,4,1,15,01,19,266,27,04,49,143,39,08,74,293,29,10,58,068,17*7F
$GPGSV,4,2,15,11,30,284,25,14,10,140,,16,19,190,27,18,28,052,18*7F
$GPGSV,4,3,15,21,04,082,24,22,10,215,30,27,65,138,27,28,09,329,28*7D
$GPGSV,4,4,15,30,01,303,,32,20,127,49,33,31,211,44*45
$GLGSV,3,1,09,69,32,038,19,70,61,124,24,71,23,178,19,75,05,235,21*63
$GLGSV,3,2,09,76,20,279,16,77,14,337,29,84,21,102,30,85,67,056,21*6F
$GLGSV,3,3,09,86,39,312,29*53
$GNGLL,4723.67576,N,00803.07351,E,091751.00,A,D*75
$GNRMC,091752.00,A,4723.67577,N,00803.07350,E,0.010,,191017,,,D*61
$GNVTG,,T,,M,0.010,N,0.018,K,D*30
$GNGGA,091752.00,4723.67577,N,00803.07350,E,2,12,0.67,383.3,M,47.3,M,,0000*4C
$GNGSA,A,3,08,01,16,11,27,10,22,32,28,,,,1.18,0.67,0.97*1A
$GNGSA,A,3,76,85,71,86,69,70,77,84,,,,,1.18,0.67,0.97*1B
$GPGSV,4,1,15,01,19,266,27,04,49,143,40,08,74,293,29,10,58,068,18*7E
$GPGSV,4,2,15,11,30,284,25,14,10,140,,16,19,190,27,18,28,052,16*71
$GPGSV,4,3,15,21,04,082,24,22,10,215,30,27,65,138,28,28,09,329,28*72
$GPGSV,4,4,15,30,01,303,,32,20,127,49,33,31,211,44*45
$GLGSV,3,1,09,69,32,038,19,70,61,124,25,71,23,178,19,75,05,235,21*62
$GLGSV,3,2,09,76,20,279,17,77,14,337,29,84,21,102,30,85,67,056,21*6E
$GLGSV,3,3,09,86,39,312,29*53
$GNGLL,4723.67577,N,00803.07350,E,091752.00,A,D*76
$GNRMC,091753.00,A,4723.67578,N,00803.07348,E,0.043,,191017,,,D*60
$GNVTG,,T,,M,0.043,N,0.079,K,D*31
$GNGGA,091753.00,4723.67578,N,00803.07348,E,2,12,0.67,383.5,M,47.3,M,,0000*4D
$GNGSA,A,3,08,01,16,11,27,10,22,32,28,,,,1.18,0.67,0.97*1A
$GNGSA,A,3,76,85,71,86,69,70,77,84,,,,,1.18,0.67,0.97*1B
$GPGSV,4,1,15,01,19,266,26,04,49,143,40,08,74,293,29,10,58,068,19*7E
$GPGSV,4,2,15,11,30,284,24,14,10,140,,16,19,190,27,18,28,052,15*73
$GPGSV,4,3,15,21,04,082,23,22,10,215,31,27,65,138,28,28,09,329,27*7B
$GPGSV,4,4,15,30,01,303,,32,20,127,49,33,31,211,43*42
$GLGSV,3,1,09,69,32,038,19,70,61,124,25,71,23,178,19,75,05,235,21*62
如果你想和正则表达式一起使用,你可以使用 grep。 这对你有用:
minicom -b 9600 -o -D /dev/ttyAMA0 -C /home/logreader/logs/log.txt | grep -oP '.*(?:$GNGLL,)\K([^\n\r]*)'