linux - डु-एच आउटपुट के अंत से फ़ाइल नाम कैसे हटाया जाए




sed awk (5)

आपके पास उस कमांड लाइन में कुछ बुरा उद्धरण है सरलतम संभव है:

du -h file_size.txt | cut -f -1

अपनी कमांड लाइन को ठीक करने के लिए:

du -h file_size.txt | sed 's/file_size.txt//'

चूंकि आपकी पोस्ट में एक awk टैग है:

du -h file_size.txt | awk '{ print $1 }'

उदाहरण ले लो:

$ du -h file_size.txt
112K file_size.txt

मैं डी-एच के आउटपुट से फ़ाइल नाम कैसे निकालूँगा?

मैंने एक स्ट्रिंग (फ़ाइल नाम) की खोज करने के लिए sed को प्रयोग करने का प्रयास किया है और इसे बिना कुछ भी बदल दिया है, लेकिन यह काम नहीं किया है (नीचे कमांड)

du -h file_size.txt | sed 's/ 'file_size.txt'//'

क्या कोई कृपया बता सकता है कि यह काम क्यों नहीं करता है, या शायद यह करने का बेहतर तरीका है?

सादर

पॉल


पहला कॉलम सरल आउटपुट यहाँ awk समाधान है

du -h test.txt  | awk '{ print $1 }'

du -h file_size.txt | cut -f1

@ ओपी अगर आपके डेटा में अलग-अलग फ़ील्ड हैं, उदाहरण के लिए रिक्त स्थान / टैब, तो इसे आसान करने के लिए डिवाइमर द्वारा उन क्षेत्रों पर विभाजित करने के लिए awk / कट जैसे टूल का उपयोग करना Regex का उपयोग करना (जैसे एसएएस) आवश्यक नहीं है इससे भी बेहतर सिर्फ खोल का उपयोग कर रहा है

विभिन्न तरीके

$ du -h file | awk '{print $1}'
4.0K

$ du -h file | cut -f1
4.0K

$ set -- $(du -h file) #using shell only
$ echo $1
4.0K

du -h का उत्पादन [टैब] सीमांकित है

du -h file_size.txt |sed 's/[\t].*//g'






awk