yq -p=csv -o=csv sample.csv | code -
foo,bar,baz
abc,1,-1
def,2,-2
ghi,3,-3
yq -p=csv -o=csv 'filter(.bar>2)' sample.csv
outputs
foo,bar,baz
def,2,-2
ghi,3,-3
yq -p=csv -o=csv 'filter(.bar==3 or .baz==-1)' sample.csv
outputs
foo,bar,baz
abc,1,-1
ghi,3,-3
yq -p=csv -o=csv 'filter(.bar>2)|length' sample.csv
outputs
2
Escape like """foo"""
or \"foo\"
Filter out specific items and create new objects for each(note: for some reason having multiple fields in new object slows down the operation dramatically)
yq -p=csv -o=csv '[filter(.bar>2)|.[]|{\"barbaz\": .bar+.baz}]' sample.csv
or
yq -p=csv -o=csv '[.[]|select(.bar>2)|{\"barbaz\": .bar+.baz}]' sample.csv
outputs
barbaz
0
0