লাইনের গ্রেপ সূচনা


15

নিম্নলিখিত লিখিত সামগ্রীগুলির সাথে আমার একটি ফাইল রয়েছে:

(((jfojfojeojfow 
//
hellow_rld
(((jfojfojeojfow
//
hellow_rld

প্রথম বন্ধনী দিয়ে শুরু হওয়া প্রতিটি রেখা আমি কীভাবে বের করতে পারি?


4
কোনও কারণে, আমি "সময়ের
গ্রেপ

উত্তর:


32

একটি লাইন শুরুর জন্য প্রতীক হয় ^। সুতরাং, সমস্ত লাইন মুদ্রণ করতে যার প্রথম অক্ষরটি একটি (, আপনি মেলাতে চাইবেন ^(:

  1. grep

    grep '^(' file
    
  2. sed

    sed -n '/^(/p' file
    

6

ব্যবহার perl

perl -ne '/^\(/ && print' foo

আউটপুট:

(((jfojfojeojfow 
(((jfojfojeojfow

ব্যাখ্যা (রেজেক্স অংশ)

  • /^\(/

    • ^ স্ট্রিংয়ের শুরুতে অবস্থান চাপুন
    • \(অক্ষরটির সাথে (আক্ষরিক মিল রয়েছে

4

এখানে একটি bashওলাইনার রয়েছে:

while IFS= read -r line; do [[ $line =~ ^\( ]] && echo "$line"; done <file.txt

এখানে আমরা প্রতিটি লাইন ইনপুট পড়ছি এবং লাইনটি শুরু (হলে লাইনটি মুদ্রিত হবে is মূল পরীক্ষাটি সম্পন্ন করে [[ $i =~ ^\( ]]

ব্যবহার python:

#!/usr/bin/env python2
with open('file.txt') as f:
    for line in f:
        if line.startswith('('):
            print line.rstrip()

এখানে line.startswith('(')লাইনটি শুরু হয় কিনা তা পরীক্ষা করে (যদি তাই হয় তবে লাইনটি মুদ্রিত হয়।


3

awk

awk '/^\(/' testfile.txt

ফলাফল

$ awk '/^\(/' testfile.txt                   
(((jfojfojeojfow 
(((jfojfojeojfow

পাইথন

পাইথন ওয়ান-লাইনার হিসাবে:

$ python -c 'import sys;print "\n".join([x.strip() for x in sys.stdin.readlines() if x.startswith("(")])' < input.txt    
(((jfojfojeojfow
(((jfojfojeojfow

বা বিকল্পভাবে:

$ python -c 'import sys,re;[sys.stdout.write(x) for x in open(sys.argv[1]) if re.search("^\(",x)]' input.txt

BSD চেহারা

lookএটি ক্লাসিক তবে অল্প পরিচিত ইউনিক্স ইউটিলিটিগুলির মধ্যে একটি যা এটিএন্ডটি ইউনিক্স সংস্করণ in. এ ফিরে এসেছিল From থেকে man look:

চেহারাটির ইউটিলিটি ফাইলের যে কোনও লাইন প্রদর্শন করে যা প্রিফিক্স হিসাবে স্ট্রিং রয়েছে

ফলাফল:

$ look "(" input.txt
(((jfojfojeojfow 
(((jfojfojeojfow

2

আপনি বিপরীতমুখী করতে পারেন।

grep -v '^[^(]' file

অথবা

sed '/^[^(]/d' file

যদি ইনপুট ফাইলে খালি লাইন থাকে তবে ফাঁকা লাইনগুলিও প্রদর্শিত হয়।
বি

1

এর জন্য গ্রেপ কমান্ড ব্যবহার করুন। উল্লিখিত সামগ্রীর সাথে ফাইলটি ধরে রেখে t.txt বলা হয়:

user:~$ grep '^(' t.txt
(((jfojfojeojfow
(((jfojfojeojfow

'--Color' এর সাথে আরও যুক্তি হিসাবে আপনি টার্মিনালে কি মিলছে তা রঙিন দেখতে পাবেন। এই নির্দেশটিও খালি লাইনের সাথে মেলে না।


4
এটি একটি যুক্ত সমস্ত রেখাগুলি মুদ্রণ করবে (, কেবল এটির সাথে শুরু হয় না।
টেরডন

যেমন টেরডন বলেছেন।
কোস

1
হ্যাঁ. লাইনের শুরুতে ম্যাচটি শুরু করতে '^' চরিত্রটি মিস করেছেন। তার জন্য দুঃখিত।
দম্পতি

1
এখন এটি আরও ভাল =) +1
এবি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.