У меня есть CSV-файл. Я хочу найти строку в определенном столбце columnB
(столбец 5 в моем наборе данных) (регистр игнорируется) и применить фильтр к другому columnC
(столбец 10 в моем наборе данных),Затем сохраните выбранные столбцы в файл.
выборка набора данных
columnA columnB columnC columnD
abc Apple 100 today
nbd apple 50 tomorrow
ccc apple 101 today
желаемый вывод
columnB columnC
Apple 100
apple 101
проблема при использовании awk
я могу выбрать columnB
, но я не могу вывести заголовок.
awk 'BEGIN {IGNORECASE = 1} {if($5 == "Apple") print $0 }' Data.csv> testPipe.txt
Я пытался использовать NR==1
, но по какой-то причине он не работает с IGNORECASE
.
Я такжепопробовал методы здесь и здесь .
Я попытался использовать grip
, я могу вывести заголовок, но я не могу указать columnB
для строкисоответствие. И поиск будет применен ко всем столбцам.
cat Data.csv |{ head -1; grep -I "Apple";} | awk -F',' '{ if ($10 >100 ) { print } }'>testPipe.txt
Есть ли способ объединить оба метода и получить желаемый результат?Спасибо