दिए गए फ़ाइलों में लाइन के अंत में पीछे की ओर जाने वाले व्हाट्सएप को कैसे निकालें (एक से अधिक)?


9

मैं sooo स्रोत फ़ाइलों में बेकार रिक्त स्थान के साथ तंग आ गया है कि मैं भी उन्हें दिखाने के लिए विम कॉन्फ़िगर किया गया है।

समस्या यह है कि मैं अक्सर (यदि हमेशा नहीं होता) तो मुझे अपने साथियों के साथ बेकार जगहों से निपटना पड़ता है।

मैं सिर्फ स्रोत फ़ाइलों को स्कैन करना चाहता हूं (एक नियमित अभिव्यक्ति दी गई है) और सभी दी गई फाइलों में से व्हाट्सएप को हटा दें।

मैंने वेब के चारों ओर खोज की है ("व्हाट्स निकालें व्हाट्सएप" आदि) लेकिन कुछ उपयोगी नहीं मिला।


2
व्हाट्सएप को हटा दें? आप जो हटाना चाहते हैं, उसके उदाहरण के बिना, मैं यह नहीं देखता कि कोई आपकी मदद कैसे कर सकता है। (मैं अनुमान लगा रहा हूं tr -d ' ' < file.fooकि आप वास्तव में क्या नहीं देख रहे हैं।)
Mat

आप प्रोग्राम को व्यर्थ व्हाट्सएप और उपयोगी व्हाट्सएप के बीच अंतर कैसे बता सकते हैं? बीटीडब्ल्यू: आप लूप और एमवी और सेड के लिए इस्तेमाल कर सकते हैं और व्हाट्सएप को ध्वस्त कर सकते हैं;
bsd

तुम भी खाली स्थान के अनुगामी निकाल सकते हैं जब आप vim में आपकी फ़ाइलों को बचाने के लिए (आप कुछ संपादित करने के बाद आप इस आदेश को फिर से चलाएं करने के लिए मुसीबत बचत): unix.stackexchange.com/questions/75430/...
लुकास

जवाबों:


8

यदि बेकार व्हाट्सएप द्वारा आप लाइन के अंत में व्हाट्सएप को पीछे छोड़ते हैं, तो यह GNU सिस्टम पर काम करेगा:

find -name '*.c' -print0 | xargs -r0 sed -e 's/[[:blank:]]\+$//' -i

( *.cजो भी आपके स्रोत फ़ाइलों से मेल खाता है उसे बदलें )


मैंने शीर्षक बदल दिया है, आपके उत्तर के लिए बहुत-बहुत धन्यवाद। किसी ने वोट दिया है क्योंकि, शायद उसने सोचा कि यह बहुत आसान था, किसी को भी इस तरह का सवाल नहीं करना चाहिए ;^)। फिर से धन्यवाद।
ओलिवियर पोंस

1

यह एक आवर्तक समस्या है!

perl -i -pe 's/\s+\n/\n/'  ./*.c

(यह ' \r\n' भी हटाता है )

मैं आम तौर पर थोड़ा अधिक जटिल संस्करण "एनआरएस" (कोई अनावश्यक स्थान नहीं) का उपयोग करता हूं:

#!/usr/bin/perl -pi
s/\h*(\r\n|\n|\r)/\n/g;                 ## normalize \n (DOS, MAC)
s/^(\xFF\xFE|\xFE\xFF|\xEF\xBB\xBF)//;  ## remove BOM !

इसे स्थापित करें: chmod 755 nrs; cp nrs ~/bin; (या समान)

और उपयोग करें: nrs ./*.c

बाइनरी फ़ाइलों में इसका उपयोग न करें!


0

पूर्व तरीका आज़माएं:

ex +'bufdo!%s/\s\+$//e' -scxa *.*

वर्तमान फ़ोल्डर में सभी फ़ाइलों से अनुगामी व्हाट्सएप को हटाने के लिए। पुनरावर्तन (bash4 / zsh) के लिए आप एक नया ग्लोबबिंग विकल्प ( **/*.*) का उपयोग कर सकते हैं ।

नोट: :bufdoकमांड POSIX नहीं है ।



0

जीएनयू उपकरणों के साथ पहले से ही ठीक है कि छूने वाली फ़ाइलों से बचने के लिए:

grep -rlZ --binary-files=without-match --include='*.c' '\s$' . |
  xargs -r0 sed -i 's/\s+$//'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.