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
. \n
в текущей записи не будет сохранено в $1, так как .
не соответствует новой строке, если не действует модификатор /s
. $F[2]..$F[3]
=> генерировать последовательность чисел, начиная с левого и заканчивая правым, с шагом 1. Артефакт 0+
предназначен для удаления ведущих нулей, которые в противном случае были бы результатом. map
выполнит соответствующую операцию, объединив текущую строку и целое число, разделенное запятой. $/
, который представляет собой RS
и по умолчанию представляет собой новую строку. Спасибо, Эммануэль Роза, за ваш комментарий, вы указали мне правильное направление.
После запуска очистки смонтированного томаbtrfs sc start -Bd /dev/mapper/bckp
Вот такой результат:scrub device /dev/mapper/bckp (id 1) done
scrub started at Thu Sep 12 13:28:38 2019 and finished after 05:12:29
total bytes scrubbed: 3.02TiB with 0 errors
Нет ошибок или предупреждений в журналах.
Итак, я снова запустил проверку btrfs и, наконец, получил чистый результат:bf ch -p /dev/mapper/bckp
Opening filesystem to check...
Checking filesystem on /dev/mapper/bckp
UUID: 4b793176-530a-4a82-b156-3363db035760
[1/7] checking root items (0:01:27 elapsed, 5102746 items checked)
[2/7] checking extents (0:04:15 elapsed, 969366 items checked)
[3/7] checking free space cache (0:00:32 elapsed, 4871 items checked)
[4/7] checking fs roots (0:09:14 elapsed, 720718 items checked)ked)
[5/7] checking csums (without verifying data) (0:00:29 elapsed, 1557593 items checked)
[6/7] checking root refs (0:00:00 elapsed, 222 items checked)
[7/7] checking quota groups skipped (not enabled on this FS)
found 3308474904576 bytes used, no error found
total csum bytes: 3214237436
total tree bytes: 15878373376
total fs tree bytes: 11854004224
total extent tree bytes: 553287680
btree space waste bytes: 2253478467
file data blocks allocated: 49609008967680
referenced 4863848071168
Моя программа:btrfs version
btrfs -проги v4.19
uname -rom
4.19.57 -gentoo x86 _64 GNU/Linux`
Таким образом, FS снова чист и пригоден для использования без каких-либо предупреждений, спасибо за помощь.