Используя strace
, Вы видите iwconfig
выполнение чего-то вроде этого:
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
ioctl(3, SIOCGIWNAME, 0xbfb02c7c) = 0
ioctl(3, SIOCGIWNWID, 0xbfb02c7c) = -1 EOPNOTSUPP (Operation not supported)
ioctl(3, SIOCGIWFREQ, 0xbfb02c7c) = -1 EINVAL (Invalid argument)
ioctl(3, SIOCGIWENCODE, 0xbfb02c7c) = 0
И приблизительно дюжина другой ioctl
s следуют. Упорно ищите их ioctl
s в ядре и Вы найдете, где данные.
Принятие там не является никакими встроенными запятыми, awk идеально подходит для этого.
awk -F , '$4 == "abc" { print }' input.csv
Со следующим data.csv
:
Itemname,Value,Description,Component
1,2,3,4
5,6,7,8
9,10,11,12
13,14,15,16
17,18,19,20
21,22,23,24
25,26,27,28
29,30,31,32
33,34,35,abc
37,38,39,40
41,42,43,44
45,46,47,48
49,50,51,52
53,54,55,56
57,58,59,60
61,62,63,64
65,66,67,68
69,70,71,72
73,74,75,76
77,78,79,80
81,82,83,84
85,86,87,88
89,90,91,92
93,94,95,96
97,98,99,100
Используя csvkit
:
$ csvsql --query "SELECT * FROM data WHERE Component = 'abc'" data.csv
Itemname,Value,Description,Component
33,34,35,abc
Я использовал другой инструмент в csvkit:csvgrep
.
$ csvgrep -c 4 -m "abc" data.csv > test.csv
Это результирующее содержимое файлаtest.csv
:
Itemname,Value,Description,Component
33,34,35,abc
-c
предназначен для обозначения столбца, в котором нужно искать. Вы также можете использовать заголовок, просто убедитесь, что пишете его точно так же, заглавные буквы имеют значение:
$ csvgrep -c Component -m "abc" data.csv > test.csv
Itemname,Value,Description,Component
33,34,35,abc
и -m
- это шаблон соответствия, я уверен, что есть способ использовать регулярные выражения, если вы хотите получить больше глубины -в своем сопоставлении. затем он помещается в новый файл с именем test.csv
.