Как искать конкретные строки в Linux? [Дубликат]

Для Caja вы можете просто сделать это:

gsettings set org.mate.caja.preferences always-use-location-entry true

1
задан 18 April 2015 в 16:07

5 ответов

Давайте создадим тестовый файл:

$ seq 100 >file

Теперь давайте отобразим строку 52:

$ sed -n 52p file
52

Или:

$ awk 'NR==52' file
52

Или, если вы открыли файл в vim, вы можете ввести 52G, чтобы перейти к строке 52.

Использование nano

Предположим, что ваш файл называется file.txt. Чтобы отредактировать файл в nano с отображением строки, столбца и символа, запустите

nano -c file.txt

Это то, что выглядит nano с курсором в строке 7 21-строчного файла:

7
ответ дан 23 May 2018 в 21:17
  • 1
    Я не понимаю вашего ответа, Джон. Кроме того, поскольку я не знаком с синтаксисом, у меня нет оснований интерпретировать ваш сценарий в моей конкретной ситуации. Не могли бы вы привести более буквальный пример. также, я не могу скачать vim – dlundy1 18 April 2015 в 06:44
  • 2
    @ dlundy1 Каково имя вашего файла? Предположим, что он был вызван file.c. В этом случае в командной строке запустите команду sed -n 52p file.c, и вы увидите строку 52. (Команда sed является стандартной для Linux: установка не требуется.) – John1024 18 April 2015 в 07:47
  • 3
    @ dlundy1 Я вижу, что вы используете nano. Я также добавил nano решение для номеров строк отображения. – John1024 18 April 2015 в 07:50

Вы можете отобразить файл с помощью less. Используйте less -N для отображения номеров строк, введите «52» в less, чтобы перейти к строке 52. См. [F5].

Или вы можете открыть файл с помощью редактора vim (тип vim thefile), а затем набрав «:52», вы получите строку 52. См. man vim

5
ответ дан 23 May 2018 в 21:17
  • 1
    Я не знаком с этой командой, поэтому, если вы можете использовать ее в контексте, это было бы здорово. Также у меня нет vim и я не могу открыть хранилище программного обеспечения, пока не исправлю ошибку, связанную с этим сообщением. – dlundy1 18 April 2015 в 06:39
  • 2
    @ dlundy1, если у вас нет vim, у вас все еще есть vi, который в то время как более простой, по-прежнему поддерживает навигацию к номерам строк. – muru 18 April 2015 в 06:54

В vi или vim

:set nu включает номера строк

:set nonu отключает номера строк

52gg идет к строке 52

52G также переходит в строку 52

5
ответ дан 23 May 2018 в 21:17
  • 1
    vi и vim также могут указывать номера строк и позиционировать курсор в начале определенной строки во время их запуска: vi '+set nu' +52 (Если вам нравится, не стесняйтесь добавлять эту информацию к вашему ответу.) – Eliah Kagan 18 April 2015 в 08:55

Эй, я думаю, многие из нас полностью задумались над этим. Когда я продолжал читать ваши комментарии и ответы, я понял, что основной текстовый редактор сообщает вам, какую строку и колонку вы используете, если вы посмотрите на нижнюю часть окна. : /

Я чувствую себя глупым lol

1
ответ дан 23 May 2018 в 21:17
  • 1
    Что ж, не могли бы вы найти один из интересных или наиболее практичных ответов, перечисленных здесь, и принять их? По крайней мере, ради протокола, вы знаете – Sergiy Kolodyazhnyy 18 April 2015 в 09:56

Хорошим инструментом для задания является grep. С помощью grep -i -n 'string' вы можете найти определенную строку и узнать, в какой строке она находится.

Предположим, что компилятор java сообщает мне об ошибке, что в строке System.out.println("Hello World") у меня нет точки с запятой или что-то в этом роде.

Что я могу сделать, это cat helloworld.java | grep -i -n 'hello world'

И это вернет мне 7: System.out.println("Hello World!"), где 7: номер строки с двоеточием как разделитель.

Кроме того, вы можете запустить nano с помощью курсора на определенной строке и столбце, например nano +7,0 helloworld.java (и, кстати, это одна из первых опций в man nano)

0
ответ дан 23 May 2018 в 21:17
  • 1
    Я не уменьшал его, но OP хочет отобразить строку, номер которой уже известен, я думаю, что вы пропустили вопрос – kos 18 April 2015 в 14:29
  • 2
    ОП сказал в сообщении " Я ищу, чтобы быстро найти строку NUMBER, что строка появляется на " к чему я обращался. – Sergiy Kolodyazhnyy 18 April 2015 в 15:14
  • 3
    Вы правы, извините, на самом деле это плохо объяснено, и меня тоже обманули. Но на самом деле, если вы читаете в начале сообщения: «Недавно я получил сообщение об ошибке, указывающее на то, что в LINE 52 возникла проблема, я пытаюсь узнать, какой лучший метод для поиска строк, а не для их подсчета. ; и что происходит после того, как ясно, что он скорее хочет отобразить строку N – kos 18 April 2015 в 15:22
  • 4
    Я оставил комментарий, потому что увидел необъяснимую нисходящую линию, поэтому я подумал, что это разъяснит вам, почему она была занижена – kos 18 April 2015 в 15:27
  • 5
    Спасибо, kos, я ценю, когда пользователи указывают области, где я могу улучшить. – Sergiy Kolodyazhnyy 18 April 2015 в 17:37

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

Похожие вопросы: