ما هو unix الأوامر لحذف الأحرف ن الأولى من الخط ؟

StackOverflow https://stackoverflow.com/questions/971879

  •  13-09-2019
  •  | 
  •  

سؤال

على سبيل المثال قد ترغب في:

tail -f logfile | grep org.springframework | <command to remove first N characters>

كنت أفكر أن tr قد يكون لديك القدرة على القيام بذلك ولكن لست متأكدا.

هل كانت مفيدة؟

المحلول

يستخدم cut. وبعد على سبيل المثال لتجريد أول 4 أحرف من كل سطر (أي بدء تشغيل Char 5):

tail -f logfile | grep org.springframework | cut -c 5-

نصائح أخرى

sed 's/^.\{5\}//' logfile 

وتحل محل 5 من الرقم الذي تريده ... يجب أن تفعل الخدعة ...

تعديلإذا لكل سطر sed 's/^.\{5\}//g' logfile

يمكنك استخدام cut:

cut -c N- file.txt > new_file.txt

-c: الشخصيات

file.txt: ملف الإدخال

new_file.txt: ملف إلاخراج

N-: الأحرف من N لإنهاء أن يتم قطع وإخراج الملف الجديد.

يمكن أن يكون أيضا args آخر مثل: 'n'، 'n-m'، '-m' يعني حرف Nth، Nth to mth الشخصية، أولا إلى حرف MTH على التوالي.

سيؤدي ذلك إلى أداء العملية إلى كل سطر من ملف الإدخال.

tail -f logfile | grep org.springframework | cut -c 900-

من شأنه أن يزيل الأولى 900 الشخصيات

cut يستخدم 900 - لإظهار 900 حرف إلى نهاية السطر

ولكن عندما كنت الأنابيب كل هذا من خلال البقرى لا تحصل على أي شيء

أظن awk ستكون أفضل أداة لذلك لأنه يمكن أن تصفية وتنفيذ وظائف معالجة السلسلة اللازمة على الخطوط المرتبطة:

tail -f logfile | awk '/org.springframework/ {print substr($0, 6)}'

أو

tail -f logfile | awk '/org.springframework/ && sub(/^.{5}/,"",$0)'

هنا وظيفة بسيطة، تم اختبارها في باش. 1st Param of Function هي String، Param 2nd هو عدد الأحرف المراد تجريدها

function stringStripNCharsFromStart { echo ${1:$2:${#1}} }

الاستعمال:enter image description here

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top