2013-06-20 6 views
5

पर पाइप करें मेरे पास एक टेक्स्ट फ़ाइल है जो प्रत्येक पंक्ति एक शब्द है जिसे बेस 64 को कोड किया गया है। अब मैं इसे डीकोड करना चाहता हूं। मैं बेस 64 कमांड लाइन का उपयोग करने की कोशिश कर रहा हूं, लेकिन मुझे केवल एक पंक्ति में सभी शब्द मिल रहे हैं, मुझे प्रति पंक्ति एक चाहिए।एक फ़ाइल की प्रत्येक पंक्ति को

उदाहरण के लिए, मेरी फ़ाइल है:

Y2F0Cg== 
ZG9nCg== 
aG91c2UK 

मैं परिणाम के रूप में चाहते हैं:

dog 
cat 
house 

लेकिन मैं हो रही है:

dogcathouse 

मुझे लगता है कि xargs मदद कर सकता है, लेकिन मुझे बिंदु नहीं मिल रहा है।

+0

प्रश्न के शीर्षक बदलने के लिए चाहते हो सकता है यह एक फ़ाइल के माध्यम से पाशन के बारे में वास्तव में नहीं है के बाद से। – l0b0

+0

@ l0b0: मुझे ऐसा नहीं लगता है। क्योंकि ओपी ने सोचा था कि इसे लूप की आवश्यकता थी। हालांकि, एक बेहतर समाधान उपलब्ध था। – anishsane

उत्तर

9

उपयोग base64 --decode:

$ while read line; do echo $line | base64 --decode; done < file 
cat 
dog 
house 

नोट: मैं इस उत्तर हटा दिया गया क्योंकि मैंने सोचा कि l0b0 की एक पूरी तरह से समस्या हल हो। जैसा कि मैंने देखा है कि अभी भी समस्या वाले व्यक्ति को समस्या है, मैं यह देखने के लिए पोस्ट को अनदेखा करता हूं कि यह समाधान मदद करता है या नहीं।

+2

धन्यवाद! मेरी समस्या हल की गई – tpcordeiro

3

यह base64 8.13 में मेरे लिए काम करता है:

base64 --decode test.txt 

फ़ाइल को विभाजित करने की कोई आवश्यकता नहीं। आपके द्वारा कौन सा संस्करण उपयोग किया जा रहा है?

+0

अच्छा, मैंने सोचा कि फ़ाइल के माध्यम से लूप करना आवश्यक था। – fedorqui

+2

मैंने इसका इस्तेमाल किया, लेकिन काम नहीं किया। मुझे लगता है कि ऐसा इसलिए है क्योंकि फाइल पूरी तरह से बेस 64 कोडित नहीं थी। वास्तव में, प्रत्येक शब्द को स्पष्ट रूप से कोडित किया गया था, और फिर इसे फ़ाइल में एक साथ रखा गया था। – tpcordeiro

0

आप (प्रत्येक पंक्ति को पढ़ने के लिए कोई ज़रूरत नहीं) है कि के लिए अजगर का उपयोग कर सकते हैं:

python -m base64 -d foo.txt 
संबंधित मुद्दे