GNU/Linux >> Belajar Linux >  >> Linux

Cara menemukan baris yang berisi string di linux

/tmp/filesaya

first line text
wanted text
other text

perintah

$ grep -n "wanted text" /tmp/myfile | awk -F  ":" '{print $1}'
2

-n beralih ke grep menambahkan setiap baris yang cocok dengan nomor baris (diikuti dengan : ), sedangkan perintah kedua menggunakan titik dua sebagai pemisah kolom (-F ":" ) dan mencetak kolom pertama dari baris mana pun. Hasil akhirnya adalah daftar nomor baris dengan kecocokan.


Selain grep , Anda juga dapat menggunakan utilitas lain seperti awk atau sed

Berikut beberapa contohnya. Katakanlah Anda ingin mencari string is dalam file bernama GPL .

File sampel Anda

[email protected]:~$ cat -n GPL 
     1    The GNU General Public License is a free, copyleft license for
     2    The licenses for most software and other practical works are designed
     3  the GNU General Public License is intended to guarantee your freedom to
     4  GNU General Public License for most of our software;
[email protected]:~$ 

1. grep

[email protected]:~$ grep is GPL 
  The GNU General Public License is a free, copyleft license for
the GNU General Public License is intended to guarantee your freedom to
[email protected]:~$ 

2. awk

[email protected]:~$ awk /is/ GPL 
  The GNU General Public License is a free, copyleft license for
the GNU General Public License is intended to guarantee your freedom to
[email protected]:~$ 

3. sed

[email protected]:~$ sed -n '/is/p' GPL
  The GNU General Public License is a free, copyleft license for
the GNU General Public License is intended to guarantee your freedom to
[email protected]:~$ 

Semoga ini membantu


Keluarga perintah grep (termasuk egrep, fgrep) adalah solusi biasa untuk ini.

$ grep pattern filename

Jika Anda mencari kode sumber, maka ack mungkin merupakan taruhan yang lebih baik. Itu akan mencari subdirektori secara otomatis dan menghindari file yang biasanya tidak Anda cari (objek, direktori SCM, dll.)


Cara biasa untuk melakukannya adalah dengan grep , yang menggunakan pola regex untuk mencocokkan garis:

grep 'pattern' file

Setiap baris yang cocok dengan pola akan ditampilkan. Jika Anda ingin mencari string tetap saja, gunakan grep -F 'pattern' file . fgrep adalah singkatan dari grep -F .

Anda juga dapat menggunakan sed :

sed -n '/pattern/p' file

Atau awk :

awk '/pattern/' file

Linux
  1. Cara menggunakan FIND di Linux

  2. Cara Menemukan Teks Tertentu menggunakan GREP di Linux

  3. Bagaimana menemukan file teks yang tidak mengandung teks di Linux?

  1. Cara menemukan File di Linux

  2. Perintah Linux:Bagaimana cara 'menemukan' hanya file teks?

  3. Bagaimana cara mengetahui sudah berapa lama sistem Linux diinstal?

  1. Bagaimana cara menemukan semua file yang berisi teks tertentu di Linux?

  2. Bagaimana menemukan file yang berisi dua string bersama di Linux?

  3. Bagaimana cara mendapatkan baris yang berisi string dalam file?