انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: پیدا کردن یک فایل با محتوای خاص؟  (دفعات بازدید: 295 بار)

0 کاربر و 2 مهمان درحال مشاهده موضوع.

آفلاین electrocell

  • Jr. Member
  • *
  • ارسال: 93
  • جنسیت : پسر
  • عاشق یادگیری و متن باز
پیدا کردن یک فایل با محتوای خاص؟
« : 09 آذر 1400، 07:27 ب‌ظ »
با سلام خدمت دوستان فرض کنید یه دایرکتوری دارم که توش چند تا فایل هست چجور میتونم فایل هایی که نام کاربری خاصی توش هست رو پیدا کنم؟
مثلا لیست کاربر ها رو توی فایل های جدا ریختم دنبال فایلی میگردم که اسم کاربر 12 داخلشه؟
به نام یهگانه برنامه نویس هستی.

آفلاین Issac

  • Hero Member
  • *
  • ارسال: 890
  • جنسیت : پسر
    • Mastodon
پاسخ : پیدا کردن یک فایل با محتوای خاص؟
« پاسخ #1 : 09 آذر 1400، 07:42 ب‌ظ »
ساده‌ترین راه استفاده از grep هست. مثلا: با دستور زیر کل پرونده‌های یک شاخه رو به صورت بازگشتی دنبال یه رشته خاص میگرده و اون خط رو همراه پرونده و شماره خط نشون میده.
grep -n -r "slam" *
با دستور find هم میشه.
این پست رو فرستادم که تعداد ارسال‌هام زیاد بشه.

آفلاین electrocell

  • Jr. Member
  • *
  • ارسال: 93
  • جنسیت : پسر
  • عاشق یادگیری و متن باز
پاسخ : پیدا کردن یک فایل با محتوای خاص؟
« پاسخ #2 : 09 آذر 1400، 07:58 ب‌ظ »
ساده‌ترین راه استفاده از grep هست. مثلا: با دستور زیر کل پرونده‌های یک شاخه رو به صورت بازگشتی دنبال یه رشته خاص میگرده و اون خط رو همراه پرونده و شماره خط نشون میده.
grep -n -r "slam" *
با دستور find هم میشه.

راهی نیست فقط اسم فایل ها چاپ بشه؟
به نام یهگانه برنامه نویس هستی.

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
پاسخ : پیدا کردن یک فایل با محتوای خاص؟
« پاسخ #3 : 10 آذر 1400، 12:49 ق‌ظ »
احتمالا خود grep این قابلیت رو داره، ولی اگه من بودم، خروجی رو میدادم به awk تا فقط قسمت اولش رو نشون  بده
grep -r "salam" | awk -F ":" '{print $1}'با cut هم میشه، اینجوری
grep -r "salam" | cut -d ":" -f 1
اگه فقط اینکار رو می‌خواهید انجام بدید، cut و awk فرق زیادی ندارن. اما اگه می‌خواهید پردازش‌های دیگه هم روی متن انجام بدید، awk مناسب‌تر هست.
میدونید که زکات علم نشر آن است

آفلاین M!lad

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1757
پاسخ : پیدا کردن یک فایل با محتوای خاص؟
« پاسخ #4 : 10 آذر 1400، 11:31 ق‌ظ »
برای نمایش اسم فایل‌ها l- رو به دستور grep اضافه کنید.

$ man grep | grep files-with-ma -A 3

       -l, --files-with-matches
              Suppress  normal  output;  instead  print the name of each input file from which output would
              normally have been printed.  The scanning will stop on the first match.

ابزار مشابه grep زیاد هست. من ripgrep رو این روزها بیشتر استفاده می‌کنم.
« آخرین ویرایش: 10 آذر 1400، 11:34 ق‌ظ توسط M!lad »
..I feel no fault for the fault I feel..