কমান্ড লাইনটি ব্যবহার করে নির্দিষ্ট লাইনগুলিকে মন্তব্য করার / সহজতর করার সহজ উপায়


37

কমান্ড লাইন ব্যবহার করে কোনও শেল / কনফিগার / রুবি স্ক্রিপ্ট মন্তব্য / uncomment করার কোন উপায় আছে?

উদাহরণ স্বরূপ:

$ comment 14-18 bla.conf
$ uncomment 14-18 bla.conf

এটি লাইন অন #সাইন যোগ বা মুছে ফেলা হবে । সাধারণত আমি ব্যবহার করি , তবে অবশ্যই আমি অবশ্যই এই লাইনের সামগ্রীগুলি জানতে এবং তারপরে একটি অনুসন্ধান-প্রতিস্থাপন অপারেশন করব এবং যখন একটির বেশি সূচ থাকবে তখন এটি একটি ভুল ফলাফল দিতে পারে (এবং আমরা কেবল এন-থের প্রতিস্থাপন করতে চাই এক).bla.conf1418sed


1
: এই প্রশ্ন খেতাবধারী একটি ওখানে একটি কোডের Uncommenting একাধিক লাইনের, লাইন সংখ্যা দ্বারা নির্দিষ্ট vi অথবা তেজ ব্যবহার যা শো এই কাজ ব্যবহার করার জন্য অনেক পদ্ধতি sed, perlইত্যাদি terdon দ্বারা বিশেষত!
slm

উত্তর:


46

ব্ল্যাককনফের 2 থেকে 4 লাইন মন্তব্য করতে:

sed -i '2,4 s/^/#/' bla.conf

আপনি যে কমান্ডটি চেয়েছিলেন তা তৈরি করতে, উপরেরটিকে কেবল মন্তব্য শেল স্ক্রিপ্টে রেখে দিন:

#!/bin/sh
sed -i "$1"' s/^/#/' "$2"

এই স্ক্রিপ্টটি আপনার হিসাবে একইভাবে ব্যবহৃত হবে ব্যতিক্রম ছাড়া প্রথম এবং শেষ রেখাগুলি ড্যাশের পরিবর্তে কমা দ্বারা পৃথক করা উচিত। উদাহরণ স্বরূপ:

comment 2,4 bla.conf

একটি অসাধারণ কমান্ড অ্যানালগালি তৈরি করা যেতে পারে।

উন্নত বৈশিষ্ট্য

sedএর লাইন নির্বাচন বেশ শক্তিশালী। সংখ্যা অনুসারে প্রথম এবং শেষ রেখাগুলি নির্দিষ্ট করার পাশাপাশি একটি রেজেক্স দ্বারা তাদের নির্দিষ্ট করাও সম্ভব। সুতরাং, আপনি ধারণকারী এক থেকে সব লাইন আদেশ করতে চান তাহলে fooএক রয়েছে এমন barব্যবহার করুন:

comment '/foo/,/bar/' bla.conf

বিএসডি (ওএসএক্স) সিস্টেমস

BSD সেড সহ, -iবিকল্পটি কেবল একটি খালি স্ট্রিং হলেও একটি আর্গুমেন্টের প্রয়োজন। সুতরাং, উদাহরণস্বরূপ, উপরের শীর্ষ কমান্ডটি এর সাথে প্রতিস্থাপন করুন:

sed -i '' '2,4 s/^/#/' bla.conf

এবং স্ক্রিপ্টের কমান্ডটি এর সাথে প্রতিস্থাপন করুন:

sed -i '' "$1"' s/^/#/' "$2"

1
বিকল্পের 'পরে ডাবল -iইচ্ছাকৃত? তাদের দরকার হয়নি।
রাফাইনস


2

আপনি প্রাক্তন মোডে ভিম ব্যবহার করতে পারেন:

ex -sc 'g/^\s*[^#]/s/^/#/' -cx bla.conf
ex -sc 'g/^\s*#/s/#//' -cx bla.conf
  1. g গ্লোবাল রেজেক্স

  2. s বিকল্প

  3. x সংরক্ষণ করেন এবং বন্ধ করেন


2

আপনি আপনার প্রকল্পগুলিতে এটি পুনরায় ব্যবহার করতে ফাংশন সহ একটি bash_file তৈরি করতে পারেন

#!/bin/bash

# your target file
CONFIG=./config.txt

# comment target
comment() {
  sed -i '' "s/^$1/#$1/" $CONFIG
}

# comment target
uncomment() {
  echo $1
  sed -i '' "s/^#$1/$1/" $CONFIG
}


# Use it so:
uncomment enable_uart
comment arm_freq
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.