Я задавался вопросом, как я могу извлечь подмножество из столбца/поля с помощью awk?Как извлечь подмножество из столбца/поля с помощью awk?
Здесь входной файл test.txt:
aaa bbb ccc=0.7707;ddd=0.21
Я хотел бы быть в состоянии извлечь цифру «0,21» из 3-го столбца, и вывод его с 1-го и 2-го столбцов:
aaa bbb 0.21
Я попробовал и использовал код ниже, но не удалось:
awk 'BEGIN { OFS = "\t" } { $4 = /^ddd=(+\d)/ ; print $1,$2,$4 }' test.txt
Пожалуйста, помогите!
Большое спасибо, TP
Отлично! Он отлично работает! Я поменял его на gsub (/.* ddd = /, "", $ 3), чтобы продолжить извлечение чисел из "ccc", но это не работает для gsub (/.* ccc =. * /, "", $ 3). Я задавался вопросом, можете ли вы сказать мне больше aobut hwat «. *» И как вы извлекаете числа из «ccc». Большое спасибо! – tsunpo
@ user2975959 Вы можете попробовать: 'awk '{a = gensub (/ ccc = ([^;] *). * /," \\ 1 "," g ", $ 3); gsub (/.*/, a, $ 3); print $ 1, $ 2, $ 3} 'filename' – devnull
@devnull Важно отметить, что 'gensub' является' gnu awk' командой. – Jotne