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

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

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


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: درخواست دستور حذف بعضی از خطوط خاص در یک فایل تکست .  (دفعات بازدید: 1405 بار)

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

آفلاین oostaa

  • Jr. Member
  • *
  • ارسال: 91
  • جنسیت : پسر
سلام دوستان .
من یک فایل دارم که چندمیلیون خط داده داره . میخواستم خطوطی که ستون دومشون برابر با یه عدد خاصه (مثلا ۱ ) را حذف کنم .دنبال دستورهایی مثل sed و awk هم رفتم . اما متاسفانه هنوز چیزی به دست نیاوردم .ممنون میشم که راهنماییم کنید. با تشکر.
input
12984 2 116.16
12985 1 119.68
12986 2 123.2
12987 1 126.72
12988 1 130.24
12989 2 133.76
12990 2 137.28
12991 1 140.8
.
.
.


output

12984 2 116.16
12986 2 123.2
12989 2 133.76
12990 2 137.28
.
.
.
« آخرین ویرایش: 18 شهریور 1394، 02:11 ب‌ظ توسط oostaa »

آفلاین احمد حمزه ئی

  • Jr. Member
  • *
  • ارسال: 66
  • جنسیت : پسر
    • Github
با پایتون3 راحت میشه، فایل ورودی رو test.txt فرض کردم.
بعد خروجی اسکریپت رو تو مکان مورد نظر ذخیره می کنید.
for line in open('test.txt'):
    if line.split()[1] != '1':
        print(line.rstrip())

حتی یه خطی هم میشه با پایتون3
[print(line.rstrip()) for line in open('test.txt') if line.split()[1] != '1']

آفلاین { AliReaza }

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی، دیگر در مورد آزادی شعار نده...
با sed که خیلی راحت میشه این کارو انجام داد:

sed '/ 1 /d' ./input > output

آفلاین oostaa

  • Jr. Member
  • *
  • ارسال: 91
  • جنسیت : پسر
عالی بود . دمتون گرم .