मेरे पास इस तरह की लाइनें हैं:

MSTRG.203.1_294_561:MSTRG.203:nc:376:66.2526979530472:39.7492003264262  2   223 4   no

और मैं पहले कोलन और पहले टैब के बीच सब कुछ हटाना चाहता हूं ताकि परिणाम इस तरह दिखना चाहिए:

MSTRG.203.1_294_561 2   223 4   no

क्या सेड के साथ ऐसा करने का कोई तरीका है? मैंने कई अलग-अलग तरीकों की कोशिश की लेकिन उनमें से कोई भी करीब नहीं है। धन्यवाद!

0
l0110 11 अक्टूबर 2017, 13:31

1 उत्तर

सबसे बढ़िया उत्तर

समाधान पहला: यदि आपकी Input_file दिखाए गए नमूने के समान है तो निम्नलिखित आपकी मदद कर सकते हैं।

awk -F':| ' '{print $1,$9,$12,$13,$16}'  Input_file

आउटपुट निम्नानुसार होगा।

MSTRG.203.1_294_561 2 223 4 no

समाधान दूसरा: या पिछले वाले से छोटा।

awk '{sub(/:.*/,"",$1)} 1'  Input_file

समाधान 3: यहां एक sed समाधान के साथ भी।

sed 's/\([^:]*\)\([^ ]*\)\(.*\)/\1\3/'  Input_file
1
RavinderSingh13 11 अक्टूबर 2017, 13:43
1
बहुत - बहुत धन्यवाद!
 – 
l0110
11 अक्टूबर 2017, 13:47
3
अंतिम स्क्रिप्ट sed $'s/:[^\t]*//' Input_file के साथ बहुत आसान होगी
 – 
tripleee
11 अक्टूबर 2017, 14:25