2009-04-24 17 views
11

क्या कट का उपयोग करना संभव है और असुरक्षित पात्रों को डिलीमीटर होना चाहिए? उदाहरण के लिए, मैं "^ ए" वर्ण (\ 001 के रूप में भी प्रतिनिधित्व करता हूं) को डिलीमीटर होना चाहता हूं।अप्रत्याशित delimiters के साथ कट का उपयोग

उत्तर

20

आप बैश उपयोग कर रहे हैं,

cut -d $'\001' ... 

काम करता है (Bash Reference Manual # 3.1.2.4 ANSI-C Quoting देखें)।

अन्य (अधिक पोर्टेबल) विकल्प,

cut -d `echo -e '\001'` ... 

FS=`echo -e '\001'` 
cut -d $FS ... 

या नियंत्रण चरित्र सीधे का उपयोग कर^वी डालने के रूप में एल्निटैक और etlerant ने उल्लेख किया - शेल कमांड लाइन पर, और इस तरह के रूप vi, इस का मतलब है संपादकों में "अगली चीज़ जो मैं विशेष रूप से टाइप करता हूं उसका इलाज न करें"।

4

हां, यह पूरी तरह से संभव है।

एक खोल, प्रेस ^V में लिख कर और फिर ^A वर्तमान पंक्ति में शब्दशः ^A डालने के लिए के बजाय उसे इलाज किया के रूप में सामान्य आदेश 'लाइन के प्रारंभ में जाएं' है:

% cat -v foo 
abc^Adef^Aghi 
% cut -d^A -f2 foo 
def 
0

उदाहरण के लिए आप अमुद्रणीय सीमांकक tab जो \t के बराबर है और आप प्रत्येक पंक्ति के अंत आइटम आप इस का उपयोग कर सकते टैब से अलग करने के लिए दूसरे को खोजने के लिए चाहते हैं:

cut -d $'\t' -f2- tablimited.csv 
संबंधित मुद्दे