নতুন লাইনের সাথে স্পেসগুলি কীভাবে প্রতিস্থাপন করবেন / পাঠ্য-ফাইলে প্রবেশ করবেন?


18

আমার কাছে "উদাহরণ" নামে টেক্সট ফাইল রয়েছে।

টার্মিনাল কমান্ড সহ পড়া: cat example

আউটপুট:

abc cdef ghi jk lmnopq rst uv wxyz

আমি নিম্নলিখিত রূপে (রূপান্তর) রূপান্তর করতে চাই : (প্রত্যাশিত আউটপুট cat example)

abc
cdef
ghi
jk
lmnopq
rst
uv
wxyz

কমান্ড-লাইনের মাধ্যমে আমি কীভাবে এটি করতে পারি?

(এটি কেবল একটি উদাহরণ ফাইল, আমি উল্লম্ব-কলামে শব্দের অবস্থান রূপান্তর করতে চাই )


উত্তর:


37

কয়েকটি পছন্দ:

  1. ক্লাসিক, ব্যবহার tr:

    tr ' ' '\n' < example
    
  2. ব্যবহার cut

    cut -d ' ' --output-delimiter=$'\n' -f 1- example
    
  3. ব্যবহার sed

    sed 's/ /\n/g' example
    
  4. ব্যবহার perl

    perl -pe 's/ /\n/g' example
    
  5. শেল ব্যবহার করুন

    foo=$(cat example); echo -e ${foo// /\\n}
    

জন্য sedউদাহরণস্বরূপ আমি যোগ করার জন্য প্রয়োজন $প্রকৃত রাখুন NEWLINE প্রতিস্থাপন ব্যাশ পেতে অর্থাত:sed $'s/ /\\\n/g' example
acumartini

ওএসএক্স sed $'s/ /\\n/g'
সেডের

16

নীচের আদেশটি চেষ্টা করুন

awk -v RS=" " '{print}' file

অথবা

awk -v RS='[\n ]' '{print}' file

উদাহরণ:

$ awk -v RS=" " '{print}' example
abc
cdef
ghi
jk
lmnopq
rst
uv
wxyz

ব্যাখ্যা:

আরএস (রেকর্ড পৃথককারী) একটি বিল্ট-ইন অ্যাজকের ভেরিয়েবল। প্রথম কমান্ডে, রেকর্ড বিভাজক ভেরিয়েবলকে দেওয়া মান হ'ল স্থান। সুতরাং যখনই কোনও স্থান খুঁজে পায় মুদ্রণ করা থেকে লাইনটি লঙ্ঘন হয় aw

দ্বিতীয় কমান্ডে, আরএস ভেরিয়েবলকে দেওয়া মান হ'ল স্থান বা একটি নতুন লাইন চরিত্র his


8

আপনি ব্যবহার করতে পারেন xargs,

cat example | xargs -n 1

বা, আরও ভাল

xargs -n 1 < example

6
xargs -n 1 < exampleআপনাকে 1 বিড়ালছানা বাঁচায়
রিনজউইন্ড

2

perlঅনলাইনার ব্যবহার :

perl -p -i -e 's/\s/\n/g' example

এটি "ENTER" (ওরফে \n) দিয়ে স্পেস এবং ট্যাবগুলি প্রতিস্থাপন করবে


1

অজগর কেউ পোস্ট করেনি, তাই এখানে এটি:

python -c "import sys;lines=['\n'.join(l.strip().split()) for l in sys.stdin.readlines()];print('\n'.join(lines))" < input.txt 

আমরা ইনপুট ফাইলটির pythonস্টিডিন স্ট্রিমে পুনর্নির্দেশ করি এবং এটি লাইন লাইন পড়ি। প্রতিটি লাইন তার অনুসরণযোগ্য নিউলাইনটি কেটে ফেলা হয়, শব্দের মধ্যে বিভক্ত হয় এবং তারপরে আবার একটি স্ট্রিংয়ে যোগ হয় যেখানে প্রতিটি শব্দকে নিউলাইন দ্বারা পৃথক করা হয় line প্রতি লাইন প্রতি একটি শব্দ থাকার বিষয়টি নিশ্চিত করার জন্য এবং একাধিক নিউলাইন সন্নিবেশ করার জন্য একাধিক স্পেস রয়েছে যেখানে এড়াতে হবে একে অপরকে. অবশেষে আমরা স্ট্রিংগুলির তালিকাটি শেষ করি যা এরপরে আবার বৃহত্তর স্ট্রিংয়ের সাথে যুক্ত হয় এবং স্ট্রাউড স্ট্রিমে মুদ্রিত হয়। এটি পরে পুনঃনির্দেশ সহ অন্য একটি ফাইলে পুনঃনির্দেশ করা যেতে পারে > out.txt


0

উপরের 'ট্র' এর মতো তবে সংযোজনগুলির সাথে:

  • ট্যাবগুলির জন্যও কাজ করে

  • একাধিক স্পেস বা ট্যাবগুলিকে 1 টি নতুন লাইনে রূপান্তর করে

    tr -s '[:space:]' '\n' < example
    
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.