ما هو unix الأوامر لحذف الأحرف ن الأولى من الخط ؟
سؤال
على سبيل المثال قد ترغب في:
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)'