Я работаю над скриптом оболочки, в котором есть много команд SED и AWK. Теперь, я застрял в месте, где я не мог идти дальше.AWK, SED для отображения столбца на основе имени столбца
Например: Если я запустил команду ниже. Он печатает первый столбец.
awk 'OFS="\t" {print $1;}' finename.txt
Но есть ли способ распечатать конкретный столбец с использованием имени столбца вместо номера столбца. Угадайте, нет прямого способа сделать это, но должен быть какой-то трюк, чтобы сделать это.
Примеры данных (вкладка отделено)
itemNumber Price Mango Apple Bannana
112201 purchased need-to-plan purchased
112202 55 yet-to-buy yet-to-buy purchased
112202 67 need-to-plan purchased purchased
112203 456 need-to-plan need-to-plan need-to-plan
112203 33 need-to-plan yet-to-buy need-to-plan
112204 456 need-to-plan yet-to-buy need-to-plan
112204 yet-to-buy purchased need-to-plan
112205 77 yet-to-buy purchased need-to-plan
112205 99 yet-to-buy purchased yet-to-buy
112206 0 yet-to-buy purchased yet-to-buy
Вы можете добавить '-F '\ t'', так как данные, кажется, есть некоторые пустые столбцы, поэтому пробелы по умолчанию разделитель по не будет содержать индексы столбцов. – meuh
Да -F '\ t' сделает это. Как обычно, у вас много вариантов. Разделенный вкладкой: 'BEGIN {IFS =" \ t "}' output: 'BEGIN {OFS =" \ t "}' и оба 'BEGIN {FS =" \ t "}'. Но -F является самым коротким участником, поэтому должен победить :-) –
@MaxMurphy - Thats Awesome. Именно то, что я искал. –