Bash: как прочитать и выделить строку с конкретными номерами?

У меня есть таблица, которая находится в файле .txt. Я хочу выбрать конкретную строку. Строка должна быть выбрана двумя столбцами, которые имеют для этой строки определенные номера.

Например, я выбираю строку с числами 21.497 и 54.6753.

Работа с bash-скриптом.

21.480       54.6753        1.0000        1.6268         
21.497       54.6753        1.0167        1.6174         
21.514       54.6753        1.1941        1.5735         
21.531       54.6753        1.0383        1.5674         

Привет и добро пожаловать в SO! Это место, где можно получить помощь, но, пожалуйста, убедитесь, что вы прочитали все страницы Как спросить, особенно минимальный воспроизводимый пример того, что вы пробовали. Люди будут рады помочь, если вы продемонстрируете, что по крайней мере приложили усилия... Тем не менее, пожалуйста, покажите нам образец ваших усилий и то, на что они похожи. Чем яснее вы сделаете свои спецификации, тем лучше будет помощь. На первый взгляд это звучит как grep или, может быть, awk проблема. Обязательно укажите свои разделители и могут ли они быть кратными.

Paul Hodges 10.04.2019 18:48

возможно awk '/2.1/ && /5.4/' file это то, что вам нужно?

glenn jackman 10.04.2019 19:16

В вашем примере нет строки с 2.1 или 5.4. Вы имеете в виду, что '.' соответствует нулю или более вхождений любого символа между 2 и 1?

David C. Rankin 11.04.2019 10:36

line=$(awk '/21.581/ && /54.6845/' pointfilename.txt) ; эхо -е $строка | tr -d '\n' >> opoint.txt Так я и написал в программе, но все равно не работает; что-то выбирает; но не печатает

Green 11.04.2019 10:39

числа 2.1 и 5.4 я написал просто как пример, теперь я сделал это более конкретным.

Green 11.04.2019 10:43

кросс-пост unix.stackexchange.com/q/511839/72456

αғsнιη 11.04.2019 11:07
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
6
125
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Нам может понадобиться немного больше, чтобы помочь вам, например, как выглядят входные данные и чего вы действительно пытаетесь достичь.

/тмп/фу:

2.1 3.8
1.1 5.4
2.1 5.4

$ grep '2.1 5.4' /tmp/foo
2.1 5.4

Я скопировал часть данных

Green 11.04.2019 10:28

Мне нужно выбрать строку с номерами 21.514 и 54.6753. Но не просто пронумеровать всю строку, а сделать ее переменной.

Green 11.04.2019 10:34
Ответ принят как подходящий
your_var=$(grep -F '21.514' your_file | grep -F '54.6753')
echo "$your_var"

prints 21.514 54.6753 1.1941 1.5735

-F в grep должен обрабатывать аргумент как фиксированную строку, а не как регулярное выражение. Таким образом, в этом случае точка будет рассматриваться как буквальная точка.

-F на самом деле говорит grep рассматривать аргумент как фиксированную строку, а не как регулярное выражение (это означает больше, чем просто рассматривать точку как литерал).
Panki 11.04.2019 14:31

Другие вопросы по теме