# से शुरू होने वाली लाइनों को हटाएं


10

मैं एक से शुरू होने वाली लाइनों को कैसे हटाऊं #, यह देखते हुए कि बाईं और दाईं ओर व्हॉट्सएप हो सकता है #?

  # Master socket provides access to userdb information. It's typically

जवाबों:



10

आप उसके grepलिए उपयोग कर सकते हैं

grep -vh '^[[:space:]]*#' filename

चूंकि, जैसा कि मैं मानता हूं, आप कुछ फ़ाइल से टिप्पणियां निकाल रहे हैं, तो आप खाली लाइनों को हटाने पर भी विचार कर सकते हैं, जो ऊपर दिए गए हैं:

grep -vh '^[[:space:]]*\(#\|$\)' filename

3

awk समाधान अपने पैटर्न से मेल खाते में पलटना है।

$> cat ./text
elephant
# Master socket provides access to userdb information. It's typically
zoo
 #ok
penguin
# !

$> awk '!/^(\ )*#/ {print $0}' ./text
elephant
zoo
penguin

4
स्पेस कैरेक्टर से बचने की जरूरत नहीं, स्पेस कैरेक्टर पर कब्जा करने की जरूरत नहीं, डिफॉल्ट एक्शन बताने की जरूरत नहीं awk '!/^ *#/' ./text:।
manatwork

awk '/^ *#/{next}1' fileकाफी अच्छा होना चाहिए।
जयपाल सिंह


0

ДМИТРИА МАЛИКОВ द्वारा पोस्ट किए गए नमूना डेटा का उपयोग कर रहा है ...

$ grep -vPh '^\s*#' filename.txt | grep -Po '\w+'
elephant
zoo
penguin

मैं grep के साथ pcre का उपयोग करना पसंद करता हूं, इसलिए मैं grep के लिए -P स्विच का उपयोग करता हूं (GNU grep होना चाहिए)। दूसरा ग्रीप शुद्ध चीनी है जो आपको बिना किसी श्वेत स्थान के शब्द देता है। यह खाली लाइनों को "हटा" भी देगा।


-1
$ perl -pi -e '$_="" if /^\s*#/' filename

यह अच्छा नहीं है - लाइनों को नष्ट नहीं करता है, और लाइनों को साफ़ करता है जैसेa#b
Mat
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.