AWK - Генерация SN из диапазонов и добавление его в запись

Уменьшение приоритета процесса только заставит его работать дольше. Таким образом, единственными возможными побочными эффектами могут быть следующие:

  • Использование памяти увеличено, потому что он работает медленнее, и, поскольку он остается активным, он останется в активной памяти или вызовет подкачку (подкачку и отключение). Это редко является проблемой, если у вас мало доступной памяти.
  • Если процесс использует блокировки, такие как блокировки записи или файла, и те же ресурсы используются другим процессом, то два процесса могут замедлять друг друга. Хотя это довольно необычная ситуация, если это применимо к вашему случаю, снижение приоритета может резко замедлить работу системы.
1
04.07.2017, 16:21
2 ответа

Что-то вроде:

awk -F, '{print; for (i = 0+$3; i <= $4; i++) print $0 FS i}'
4
28.04.2021, 23:59
while IFS= read -r l; do
   printf '%s\n' "$l" | tee log
   for i in $(seq $(cut -d, -f3,4 log | tr, '\n')); do
     printf '%s,%s\n' "$l" "$i"
   done
done < input.csv

perl -F, -pe 's|(.*)\K|join $/, $,, map "$1,$_", 0+$F[2]..$F[3]|ex'  input.csv

выход:

1,13/06/17,01,03,D151
1,13/06/17,01,03,D151,1
1,13/06/17,01,03,D151,2
1,13/06/17,01,03,D151,3
2,25/06/17,04,06,D154
2,25/06/17,04,06,D154,4
2,25/06/17,04,06,D154,5
2,25/06/17,04,06,D154,6

Пояснение

  1. Текущая строка сохранена в $1. \nв текущей записи не будет сохранено в $1, так как .не соответствует новой строке, если не действует модификатор /s.
  2. $F[2]..$F[3]=> генерировать последовательность чисел, начиная с левого и заканчивая правым, с шагом 1. Артефакт 0+предназначен для удаления ведущих нулей, которые в противном случае были бы результатом.
  3. mapвыполнит соответствующую операцию, объединив текущую строку и целое число, разделенное запятой.
  4. Все эти строки, сгенерированные на шаге -3, объединяются с помощью $/, который представляет собой RSи по умолчанию представляет собой новую строку.
1
28.04.2021, 23:59

Теги

Похожие вопросы