किसी फ़ाइल में टेक्स्ट कैसे साफ़ करें?


70

पाठ को खोलने के बिना पाठ में मौजूद पाठ को कैसे साफ़ करें?

मैं उदाहरण के लिए मेरे पास एक फ़ाइल है hello.txtजिसमें कुछ पाठ डेटा है, और मैं उस फ़ाइल के कुल पाठ को बिना खोले कैसे साफ़ कर सकता हूँ ?

इसके द्वारा, मेरा मतलब किसी भी संपादक जैसे नैनो, गेडिट इत्यादि का उपयोग नहीं करना है।


1
किसी फ़ाइल को 'खोलने' से आपका क्या मतलब है? अब तक दिए गए सभी उत्तरों में फ़ाइल शेल द्वारा लिखने के लिए अभी भी खोली जाएगी। अंत में शेल किसी भी अन्य की तरह एक कार्यक्रम है।
जेफ

@ नैनो,
गेडिट

हुस 787 मैंने वहां जाने से टाइप नहीं किया है अगर आपको लगता है कि मैं अपने सवाल में आपकी दिलचस्पी का स्वागत करता हूं।
r --dʒɑ

मैं जेफ की टिप्पणी से सहमत हूं ... मेरी भी राय है * कि इसे लिखने के लिए फाइल स्ट्रीम को खोलना होगा, चाहे आप किसी भी टेक्स्ट एडिटर का उपयोग करें, या पुनर्निर्देशन। ( * इस मामले में मदद करने के लिए किसी को भी चीनी मिलाने की कड़ी की सराहना करते हैं )
सटीक

जवाबों:


138

बस के साथ अपने टर्मिनल खोलने CTRL+ ALT+ Tऔर के रूप में टाइप करें

 > hello.txt

यह है, उस फ़ाइल में आपका डेटा बाहर भी इसे खोलने के साथ साफ हो जाएगा।

उदाहरण:

यहाँ छवि विवरण दर्ज करें


5
तकनीकी रूप से फाइल खोली जाएगी। सिर्फ एक संपादक में नहीं।
जॉन डिब्लिंग

2
@JohnDibling वास्तव में यह पुनर्निर्देशन है, मेरा मानना ​​है कि फ़ाइल यहाँ नहीं खोली जा रही है। पुनर्निर्देशन में stdoutयदि कोई है तो मौजूदा फ़ाइल को अधिलेखित कर देता है। इस मामले में कुछ भी नहीं है stdout। इसलिए फ़ाइल को शून्य से अधिलेखित किया जा रहा है, यदि आवश्यक हो तो पूर्ववर्ती डेटा को मिटा देना चाहिए।
स्मारिका

क्या इस आदेश को पूर्ववत करने का कोई तरीका है?
राव

@ राओ, अगर इसकी एक बड़ी पसंद> 10 जीबी हो सकती है। लेकिन कितनी सीमा तक निश्चित नहीं है।
rɑːdʒɑ

28

सबसे आसान तरीका यह है कि किसी फ़ाइल को काट दिया जाए, शेल नो-ऑप कमांड ( :) को उस फ़ाइल के आउटपुट को रीडायरेक्ट करना है जिसे आप मिटाना चाहते हैं।

: > hello.txt

2
इसकी शायद सबसे आसान (बस के सापेक्ष नहीं >), लेकिन sure..i आश्चर्य के लिए सबसे तेजी से कारण है कि यह इस अत्यधिक देखी question..here के जवाब में से किसी में उल्लेख नहीं किया गया है, +1 ले ..
heemayl

13

मैं भी rajagenupula के उत्तर की तरह पुनर्निर्देशन का उपयोग करने जा रहा हूँ। लेकिन थोड़ा और लचीलापन है। एक टर्मिनल खोलें और टाइप करें,

cat > hello.txt

और Ctrl+ दबाएं C। यह पिछली फाइल को मिटा देगा। यदि आप इसे बहुत चाहते हैं तो ठीक है।

आप चाहें तो फाइल को पोंछने के बाद कुछ और कर सकते हैं। इस तरह से न केवल आप बिना किसी फ़ाइल को मिटा सकते हैं, बल्कि फ़ाइल में उचित स्वरूपण के साथ कुछ पंक्तियाँ भी लिख सकते हैं। मान लें कि आप फ़ाइल को पोंछने के बाद "उबंटू सबसे अच्छा ओएस" लिखना चाहते हैं, बस करें

cat > hello.txt
Ubuntu is the 
best OS

फिर Ctrl+ दबाएं C। अब पिछली फाइल को मिटा दिया गया है। एक ही समय में शब्द दो पंक्तियों में होते हैं जैसे मैंने उन्हें रखा।

उदाहरण देखें:

यहाँ छवि विवरण दर्ज करें


जवाब देने के लिए धन्यवाद। इतना कम लेकिन उसके ठीक बाद भी काम करना और फिर भी दिलचस्प। + 1
rʒɑd work

>पुनर्निर्देशन के लिए खड़ा है। किसी भी मौजूदा फ़ाइल को अधिलेखित करने के लिए फ़ाइल cat > fileको लिखेंगे stdout
13:08

10

मुझे यह हर समय लॉग फाइल के साथ करना पड़ता है। सबसे आसान तरीका जो मैंने पाया है वह निम्न कमांड के साथ है:

cat /dev/null > hello.txt

यह फ़ाइल की सामग्री को हटाता है, और आपको एक खाली फ़ाइल के साथ एक संपादक, पाठ, उस सामग्री में से किसी का चयन करने के लिए इसे खोलने के बिना छोड़ देता है। अधिक विशेष रूप से यह क्या करता है कि फ़ाइल की सामग्री को "/ देव / नल" या कुछ भी नहीं के साथ बदलना है। यह वास्तव में बहुत चालाक है।

केवल चेतावनी यह है कि जिस उपयोगकर्ता को आप वर्तमान में लॉग इन कर रहे हैं, उसे उक्त फाइल की अनुमति लिखना होगा।


जवाब के लिए धन्यवाद। कृपया एक उदाहरण जोड़ दें ताकि यह अधिक अच्छी तरह से दिख सके। + 1
rʒɑd '

5

यदि कोई फ़ाइल hello.txt नाम के साथ बनाई गई थी और उसे कुछ पाठों के साथ प्रदान किया गया था, तो टर्मिनल ctrl+ alt+ में नीचे की कमांड t, hello.txt फ़ाइल के सभी पाठ को हटा देगी ।

echo "" > hello.txt

यहाँ छवि विवरण दर्ज करें


उत्तर देने के लिए धन्यवाद, +1। कृपया इसे कुछ उदाहरणों के साथ विस्तारित करें ताकि यह अधिक अच्छा दिख सके।
r --dʒɑ

3

एक और दृष्टिकोण - फाइल करने के लिएcp/dev/null

xieerqi:$ cat testFile.txt                                                                                        
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1      115247656 83100492  26269816  76% /
none                   4        0         4   0% /sys/fs/cgroup
udev             2914492        4   2914488   1% /dev
tmpfs             585216     1152    584064   1% /run
none                5120        0      5120   0% /run/lock
none             2926072    98096   2827976   4% /run/shm
none              102400       76    102324   1% /run/user

xieerqi:$ cp /dev/null testFile.txt                                                                               

xieerqi:$ cat testFile.txt

xieerqi:$ 

तुम कमाल के आदमी हो!
यासर सिनाज़ब

2

सबसे छोटा जवाब नहीं लेकिन ...

यह उत्तर सुपर यूजर के एक अन्य पर आधारित है । हालांकि सबसे छोटा बैश कमांड नहीं है, truncateऔसत न्यूबायर्स के लिए सबसे अधिक पठनीय है:

$ echo Hello > Hello.txt
$ echo World! >> Hello.txt
$ cat Hello.txt
Hello
World!
$ truncate -s 0 Hello.txt
$ ll Hello.txt
-rw-rw-r-- 1 rick rick 0 Mar 20 17:32 Hello.txt

truncateयहां कमांड के साथ उपयोग किए जाने वाले पैरामीटर :

  • "-s" आकार निर्धारित करता है
  • "0" आकार शून्य होगा

पहले 10,000 बाइट को छोड़कर सब कुछ साफ़ करें

इसका एक फायदा truncateआप यह बता सकते हैं कि कितना रखना है, न कि केवल शून्य:

$ truncate -s 10000 Hello.txt

... पहले 10,000 बाइट के बाद सबकुछ चौपट कर देगा। यह उपयोगी हो सकता है अगर एक कार्यक्रम पागल हो गया और कई मेगाबाइट डेटा को एक छोटी लॉग फ़ाइल में डंप कर दिया:

  • truncate10K के उचित बड़े सामान्य आकार के लिए कमांड चलाएँ
  • फ़ाइल को अपने टेक्स्ट एडिटर से खोलें और दबाएं End
  • हाइलाइट करें और PgUpशेष बाइट्स को हटाने के लिए जो (आमतौर पर ASCII कचरा पात्रों द्वारा पहचाने जाने योग्य) नहीं हैं।

0

इसलिए, मुझे यह उत्तर देने के लिए बहुत सारे पुनर्निर्देशन का उपयोग किया जा रहा है;)

कॉम्बो के साथ थोड़ा अलग दृष्टिकोण: आरएम और टच

rm hello.txt && touch hello.txt

( हाँ ... अभी तक एक और धोखा! )

तो इस कमांड कॉम्बो के साथ फाइल hello.txt को ओपन नहीं किया गया और अंत में आपके पास अभी भी फाइल है। जैसा आप चाहते थे!


3
मेरी राय में एक अच्छा 'धोखा' नहीं है, यह फ़ाइल अनुमतियों को बदल सकता है ...
पार्टो

1
यह हटाए जाने के लिए बेहतर हो सकता है। यह समस्याएं पैदा कर सकता है: परमिट बदल सकते हैं। यदि एक लॉग फ़ाइल पर किया जाता है तो यह उस सेवा से अप्रत्याशित व्यवहार का कारण बन सकता है जो लॉग को वहां होने और लेखन योग्य होने की उम्मीद करता है।
रिनविंड

जबकि यह उत्तर ब्याज के बिंदु के रूप में सबसे अच्छा तरीका नहीं है: मालिक / अनुमति के साथ मुद्दों को ठीक करने के लिए पहले स्वामित्व और अनुमतियों की जांच करें और फिर इसे जोड़ें (आवश्यक के रूप में समायोजित करें): && sudo chown उपयोगकर्ता: group hello.txt && sudo chodod 644 hello.txt
क्रिस

इनोड नंबर हटा दिया जाएगा। एक नया इनकोड नंबर बनाया जाएगा। बुरा विचार।
दीपंकर नलुई

0
vi filename -c ':1,$d' -c ':wq'

मेरे लिए सबसे अच्छा काम किया क्योंकि इसकी विशेष अनुमति थी


इस समस्या के बारे में विस्तार से बताकर आप इस उत्तर को सुधार सकते हैं। इसके अलावा आप बता सकते हैं कि कार्यक्रम क्या viहै और विभिन्न पैरामीटर और तर्क क्या करते हैं।
विनयुनुच्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.