ls -l
रिक्त स्थान के बजाय टैब का उपयोग करके अलग-अलग फ़ील्ड में कैसे संशोधित किया जा सकता है? मैं आउटपुट को एक स्प्रेडशीट में पेस्ट करना चाहता हूं; रिक्त स्थान की एक चर संख्या के साथ पैडिंग ऐसा करना मुश्किल बनाता है। उदाहरण देकर स्पष्ट करने के लिए:
drwxr-xr-x 2 रूट रूट 4096 सितंबर 26 11:43 wpa_supplicant -rw-r ----- 1 रूट डायलआउट 66 सितंबर 26 11:43 wvdial.conf drwxr-xr-x 9 रूट रूट 4096 अक्टूबर 8 08:21 X11 drwxr-xr-x 12 रूट रूट 4096 फरवरी 18 23:31 xdg drwxr-xr-x 2 रूट रूट 4096 जनवरी 31 06:11 xml drwxr-xr-x 2 रूट रूट 4096 नवंबर 22 07:26 xul-ext -rw-r - r-- 1 रूट रूट 349 जनवरी 13 2012 zsh_command_not_found
ls -l /etc
ऊपर दिखाए गए अंश में , पंक्तियों 1, 2 और 3 में स्तंभ 2 में एक अंक है जबकि पंक्ति 4 में दो हैं। इसका मतलब है कि पंक्ति 1 और 2 को 1-3 पंक्तियों में अलग करने के लिए दो स्थानों का उपयोग करके संरेखण प्राप्त किया जाता है, लेकिन पंक्ति 4 में सिर्फ एक स्थान।
ls
कहते हैं , तो इसका आउटपुट पार्स करना ठीक है। वह लक्ष्य शायद ही हो। तर्क है कि यह यहाँ है। मुझे लगता है कि आपके द्वारा उपयोग की जाने वाली विधि काफी अच्छी है (कोई भी विधि आवश्यकताओं के कुछ सेट को देखते हुए अवांछित परिणाम उत्पन्न करेगी )! हालांकि, यकीनन पार्सls
करना बेहतर हो सकता है। एक फ़ाइल नाम के मामले पर विचार करें जो वास्तव में इसमें एक टैब चरित्र है।ls -l
एक?
चरित्र के साथ टैब को बदलता है । आपकी स्क्रिप्ट टैब वर्ण को संरक्षित करती है, जो अतिरिक्त कॉलम बनाएगी यदि इसके आउटपुट को टैब-डेलिमिटेड के रूप में समझा जाए और स्प्रेडशीट बनाने के लिए उपयोग किया जाए। यह बुरी तरह से अपमानित करता है यदि फ़ाइल नाम में एक नई रेखा है।