Нумерация списка объектов

Вы хотите использовать fullblock. notruncне влияет на файлы устройств.

dd of=/dev/mmcblk0 iflag=fullblock status=progress bs=4M
-1
11.03.2021, 11:20
2 ответа

Та же идея, что и в ответе αғsнιη , но выполнено несколько иначе:

awk '
    { $0 = substr($0, 0, length - 4) }
    $0 != prev { n = 0 }
    { printf "%s_%.3d\n", $0, ++n; prev = $0 }' file

Первый блок удаляет существующее трехзначное -число в конце строки, а также предыдущее подчеркивание, что дает своего рода префиксную строку.

Средний блок сбрасывает счетчик nна ноль, если предыдущая строка не совпадает с текущей строкой (новая строка префикса ).

Последний блок увеличивает счетчик и выводит его как заполненное нулем -трехзначное целое число в конце строки префикса с символом подчеркивания в -между ними. Наконец, текущая строка запоминается как prev.

0
18.03.2021, 22:25
for i in `awk -F "_" '{print $1"_"$2}' filename| awk '{if(!seen[$1]++)print $1}'`
do
    co=`grep -c "$i" filename`
    if [[ $co -le 10 ]]; then
        grep "$i" filename | awk -F "_" '{print $1"_"$2"_00"NR}';
    else
        grep "$i" filename | awk -F "_" '{if(NR<10){print $1"_"$2"_00"NR}else{print $1"_"$2"_0"NR}}'
    fi
done

выход

BIRC2_region_001
BIRC2_region_002
BIRC2_region_003
BMI1_region_001
BMI1_region_002
CRBN_region_001
CRBN_region_002
CRBN_region_003
CDC20_region_001
CDC20_region_002
CDC20_region_003
CBL_region_001
CBL_region_002
CBL_region_003
CBL_region_004
CBL_region_005
CBL_region_006
CBL_region_007
CBL_region_008
CBL_region_009
CBL_region_010
CBL_region_011
CBL_region_012
CBL_region_013
CBL_region_014
CBL_region_015
CBL_region_016
CBL_region_017
CBL_region_018
CBL_region_019
CBL_region_020
0
18.03.2021, 22:25

Теги

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