Простой способ подойти к этому - избавиться от ненужных строк с помощью sed
, а затем просто распечатать первые 94
символов оставшихся строк, например,
$ while read line; do echo "${line:0:94}"; done < <(sed '2d;$d' file)
PKCS11 provider found specified slot label: admin (slot: 76147, index: 14)
| COUNT | CKA CLASS | CKA LABEL |
+-------+-----------------+------------------------------------------------------------------+
| 001 | PRIVATE_KEY | d4a12e598081d863ff371904d42ba6b0d1b19b1f4990477d60sdadafdfdfdffd |
| 002 | PUBLIC_KEY | e5a12g7025l1d868c36331904d42baa6b0d1b19b1ggf4990477dsfdsdfs6070a |
( примечание: если вы не используете bash, где замена процесса доступна для подачи while
l oop, вы можете просто вызвать выражение sed
сначала и передайте результат в while l oop.)
Редактировать на основе комментария
Если ширина первых 3 полей формата Неизвестно заранее, вы можете добавить подстановку команд , чтобы определить общую ширину, например:
$ width=$(awk -F'|' '{print length($2)+length($3)+length($4)+4}' < <(sed -n 3p file))
while read line; do
echo "${line:0:$width}"
done < <(sed '2d;$d' file)
PKCS11 provider found specified slot label: admin (slot: 76147, index: 14)
| COUNT | CKA CLASS | CKA LABEL |
+-------+-----------------+------------------------------------------------------------------+
| 001 | PRIVATE_KEY | d4a12e598081d863ff371904d42ba6b0d1b19b1f4990477d60sdadafdfdfdffd |
| 002 | PUBLIC_KEY | e5a12g7025l1d868c36331904d42baa6b0d1b19b1ggf4990477dsfdsdfs6070a |
Еще один немного более короткий способ, который устраняет while
l oop и использует cut
, чтобы обрезать до объединенной ширины первых 3 полей с разделителями может быть:
$ width=$(awk -F'|' '{print length($2)+length($3)+length($4)+4}' < <(sed -n 3p file))
sed '2d;$d' file | cut -c -$width
PKCS11 provider found specified slot label: admin (slot: 76147, index: 14)
| COUNT | CKA CLASS | CKA LABEL |
+-------+-----------------+------------------------------------------------------------------+
| 001 | PRIVATE_KEY | d4a12e598081d863ff371904d42ba6b0d1b19b1f4990477d60sdadafdfdfdffd |
| 002 | PUBLIC_KEY | e5a12g7025l1d868c36331904d42baa6b0d1b19b1ggf4990477dsfdsdfs6070a |