web-dev-qa-db-ja.com

Linuxで特定の行を検索する方法は?

最近、行52に問題があることを知らせるエラーを受け取りました。実際に行をカウントするのではなく、行を見つけるための最良の方法を学習しようとしています。

Windowsでは、 Notepad ++ を頻繁に使用して、行を直接左に表示したため、ユーザーは探している特定の行に簡単にスクロールできました-しかし、Linuxではこのオプションが表示されません。

おそらく特定のアプリケーションが必要ですか?


UPDATE:現在、ソフトウェアストアを開くことができず、デフォルトのnanogeditしかありません。したがって、ソフトウェアのインストールを必要としないソリューションへの回答を制限してください。

**注:**ある種の「文字列」を見つけるつもりはありません。文字列が表示される行NUMBERをすばやく見つけることを探しています。

4
dlundy1

GUIアプローチを探している場合は、デフォルトのテキストエディターgeditで行番号を表示できます。これを行うには、[編集]-> [設定]に移動し、[行番号を表示する]ボックスにチェックを入れます。

また、特定の行番号にジャンプすることもできます Ctrl+I

7
Chuck R

テストファイルを作成しましょう。

$ 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

これは、21行のファイルの7行目にカーソルがある場合のnanoの外観です。 enter image description here

8
John1024

lessでファイルを表示できます。 less -Nを使用して行番号を表示し、「52」をlessに入力して52行目に移動します。man lessを参照してください。

または、vimエディター(vim thefileと入力)でファイルを開き、「:52」と入力すると52行目が表示されます。man vimを参照してください

5
waltinator

viまたはvim

:set nuは行番号をオンにします

:set nonuは行番号をオフにします

52ggは52行目に移動します

52Gも52行目に移動します

5
jasonrhaas

みなさん、私たちの多くはこれを完全に考えすぎたと思います。コメントと回答を読み続けると、ウィンドウの下部を見ると、基本的なテキストエディターが現在の行と列を示していることがわかりました。 :/

ばかげてる

1
dlundy1

この仕事に適したツールは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 +7,0 helloworld.Javaのように特定の行と列にカーソルを置いてnanoを開始することもできます(ちなみに、これはman nanoの最初のオプションの1つです)

0