2014-10-02 6 views
5

में नई लाइन को रोकें क्या लाइन ब्रेक के बिना cut स्ट्रिंग संभव है?कट कमांड

printf 'test.test'test.test को बिना किसी नई लाइन के प्रिंट करता है।

लेकिन अगर मैं printf 'test.test' | cut -d. -f1 के साथ आउटपुट काटता हूं तो test के पीछे एक नई लाइन है।

+1

मैं देख रहा हूँ के रूप में आप एक अधिक सामान्य समस्या के बारे में टिप्पणी है, तो आप ' डी बेहतर सवाल है कि आप वास्तव में क्या करना चाहते हैं। – fedorqui

उत्तर

4

नहीं जो मुझे पता है। man cut काफी छोटा है और इसी तरह की कुछ भी प्रतिबिंबित नहीं करता है।

इसके बजाय, आप cut उत्पादन printf करने के लिए एक here-string साथ, प्रदान कर सकते हैं ताकि नई लाइन मुद्दा printf पर फिर से निर्भर करता है:

printf '%s' $(cut -d. -f1 <<< "test.test") 
2

आप cut उपयोग करने के लिए की जरूरत नहीं है, तो आप प्राप्त कर सकते हैं awk साथ एक ही परिणाम:

printf 'test.test' | awk -F. '{printf($1)}' 
+0

धन्यवाद! सबसे पहले मुझे 'awk' एनआर == 3 {printf "वाईफाई सिग्नल शक्ति =" $ 3 * 10/7} '/ proc/net/wireless | कट-डी -f1; printf "%% \ n" 'लेकिन 'कट' ने एक नई लाइन बनाई ताकि मैंने समाधान के लिए कहा। फिर भी अगर एक अजीब कमांड के साथ इसे हल करने का कोई आसान तरीका है, तो मैं इसे पसंद करूंगा! (उदाहरण के लिए 'awk' एनआर == 3 {प्रिंट "वाईफाई सिग्नल स्ट्रेंथ =" $ 3 * 10/7 "%"} '/ proc/net/wireless' और डॉट के बाद '3 * 10/7' के आउटपुट को काटें) – mamiu

+1

कैसे: 'printf (" वाईफाई सिग्नल शक्ति =% .0f %% ", $ 3 * 10/7)' (अंतिम %% आपके अजीब कोड में "%" से मेल खाता है)। – isedev

+0

आपको वास्तव में @ fedorqui के उत्तर को स्वीकार करना चाहिए - यह वास्तविक पोस्ट किए गए प्रश्न से मेल खाता है। मैंने अपना उत्तर केवल शैक्षणिक उद्देश्यों के लिए एक संभावित विकल्प के रूप में पोस्ट किया। – isedev

6

ऐसे कई तरीके हैं। इसके अलावा isedev और fedorqui के उत्तर देने के लिए, आप भी कर सकता है:

  • perl -ne '/^([^.]+)/ && print $1' <<< "test.test"
  • cut -d. -f1 <<< "test.test" | tr -d $'\n'
  • cut -d. -f1 <<< "test.test" | perl -pe 's/\n//'
  • while read -d. i; do printf "%s" "$i"; done <<< "test.test
+0

बहुत व्यापक! +1 'tr'd' पर '$' \ n'' का उपयोग करना आवश्यक है? मेरे लिए, 'tr -d' \ n'' ठीक काम करता है। – fedorqui

+1

@ फेडोरक्वी हुह, स्पष्ट रूप से नहीं। मुझे लगता है मुझे याद है कि यह होता था लेकिन मैं गलत हो सकता था। शायद यह 'tr' कार्यान्वयन पर निर्भर करता है। मैंने आदत से इस तरह से किया। – terdon

+0

'tr -d $ '\ n'' में' $ '(डॉलर) का क्या अर्थ है? –

संबंधित मुद्दे