Нужна помощь в команде awk (или sed), чтобы выбрать строку, только если значение/Строка существует в определенном столбце.Распечатайте строку только в том случае, если строка существует в определенной колонке
Пример:
Я только хочу, чтобы вернуть строку, если слово «истина» есть в колонке 5, не приведи строку обратно, если «истина» не существует в колонке 5
вход:
john,jacob,jingle,schmidt,true
jason,jack,john,true,false
oscar,meir,true,weiner,false
tiffany,amber,false,theissen,true
jack,john,sally,true,true
Желаемая Выход:
john,jacob,jingle,schmidt,true
tiffany,amber,false,theissen,true
jack,john,sally,true,true
Я знаю, как тянуть строку назад, что имеет слово и Doesnt есть такое слово, как это:
awk '/true/ && !/false/'
, но это не будет работать и я знаю, как удалить слово только если его в определенном столбце
awk 'BEGIN{FS=OFS=","} {sub(/true */, "", $5)} 1'
, но я не знаю, как объединить эти два.
моя догадка:
awk 'BEGIN{FS=OFS=","} {"/true/",$5}
худшем случае .... :)
awk 'BEGIN{FS=OFS=","} {sub(/true */, "Unmatchablestring", $5)} 1' | awk '/Unmatchablestring/'
IMHO требование * ... возвращает строку, если слово «истина» существует в столбце 5 ... * выполняется оператором '~' – hek2mgl
Хм, возможно, но на входе OP отображается только слово 'true 'в нем, поэтому проверка равенства мысли будет более точной. – anubhava
поэтому разница между ~ и ==? – moore1emu