Чистое решение Bash:
( # Use parentheses as scope for IFS
IFS=$',\n' # Split on both , or \n
for c in $(</tmp/file.csv) # For every column or row
do
[[ "$c" =~ ^35= ]] && echo ${line##35=} # Find ^35= and print while removing ^35=
done
) # Optionally >/tmp/filtered-output.txt
Обратите внимание, используйте это только из-за его удобочитаемости и гибкости — если вы можете его прочитать, в противном случае вы можете использовать следующий подход:
# Read | Replace | Find | Remove
cat /tmp/file.csv | tr ',' '\n' | grep '^35=' | sed 's/^35=//'
, который более интуитивно понятен и эффективен. .
Ввод (/tmp/file.csv):
35=A,D=35,C=129,ff=136
D=35,35=BCD,C=129,ff=136
900035=G,D=35,C=129,ff=136
35=EF,D=35,C=129,ff=136,35=G
36=o,D=35,k=1
Вывод:
A
BCD
EF
G