Как отрезать от 1-го символа до -7 символов в awk?

У меня есть файл с несколькими строками.

Какой второй столбец является user_id , но последние семь чисел являются случайными числами.

Его нужно обрезать, чтобы получить аутентичный идентификатор.

Поэтому мне нужно получить 1st character to the -7 character второго столбца каждой строки.

Я искал функцию substr awk, похоже, не может обрабатывать эту работу напрямую.

Итак, как отрезать от 1-го символа до -7 символов в awk?

2 Solutions collect form web for “Как отрезать от 1-го символа до -7 символов в awk?”

 awk '{ print substr($2,1,length($2)-7) }' 

Если длина ($ 2) <= 7, вы не получите выход. Должна ли быть минимальная длина? Если это так, вы можете определить функцию min () в awk:

 awk 'function min(a,b){return a<b?b:a} ..<rest of code>..' 

Предполагая, что операции необходимо выполнить во втором столбце (обрезать последние 7 символов):

[whatever command you use to open your file] | awk '{ print $2 }' | rev | cut -c 8- | rev

Вот разбивка:

awk '{ print $2 }' Получает второй столбец файла

rev готовит строку (меняет ее). Я не думаю, что cut может удалить последние N символов, поэтому эта вещь удаляет первые N символов из инвертированной строки.

cut -c 8- Удаляет первые 7 символов из строки. (обнаружено методом проб и ошибок, требуется проверка)

rev обращает обработанную строку. Это отображает исходную строку, но без 7-символьной вещи.

  • заменить строку сложного текста в нескольких файлах
  • Печать частоты числа столбцов в строках в текстовом файле
  • Как заменить запятые на пробелы в csv, но вставляя другое количество пробелов после каждого столбца?
  • Как использовать команду awk для вычисления разницы дат между двумя столбцами в одном файле?
  • Почему число округлено по ssh?
  • Как сравнить столбцы одной строки в одном файле?
  • Рассчитать средние значения за каждый день за несколько лет
  • Подсчитайте вхождения строки в файл
  • Как распечатать индекс цикла в файл с помощью awk?
  • grep и найдите следующее значение:
  • печатать строки с уникальными указанными полями
  • Linux и Unix - лучшая ОС в мире.