Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
2 / 2 / 0
Регистрация: 23.08.2023
Сообщений: 67

Групповое переименование и объединение файлов txt, с алфавитно-числовой сортировкой

16.04.2025, 00:42. Показов 7025. Ответов 90
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте !
Есть много файлов txt , которые нужно объединить в один
В данный момент я делаю это так

PowerShell
1
Get-Content -Path C:\Test2\*.txt | Set-Content -Path C:\Input.txt
Но объединяются они не в том порядке в котором нужно

Мне нужно чтобы файлы объединялись по естественной сортировки алфавитно-числовой
1
2
10
100

Сейчас сортируется
1
10
100
2

Пробовал сначала txt файлы переименовывать со счетчиком в начале имени файла
PowerShell
1
Get-ChildItem -Path C:\Test2\*.txt | Foreach-Object {$i=1} {ren $_ -NewName ("{0:00#} $($_.Basename).txt" -f $i++) }
Но сортировка получается такая же как и при объединении
Пробовал с Sort-Object -Property Name , так тоже не получается
Подскажите пожалуйста как сделать сортировку алфавитно-числовой?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.04.2025, 00:42
Ответы с готовыми решениями:

Групповое переименование файлов через командную строку
Здравствуйте! Мне нужно создать bat-файл со скриптом, который переименует все файлы в папке C:\SEPT...

Групповое переименование файлов средствами PowerShell 2.0
Здравствуйте, при переименовании файлов скрипт отрабатывает не со всеми форматами, выдает ошибку...

Групповое переименование csv-файлов
Приветствую всех и прошу помощи в написании батника. Исходные данные: Имеется множество csv...

90
2 / 2 / 0
Регистрация: 23.08.2023
Сообщений: 67
21.04.2025, 20:40  [ТС]
Студворк — интернет-сервис помощи студентам
Вот прикрепил пару скринов
Миниатюры
Групповое переименование и объединение файлов txt, с алфавитно-числовой сортировкой   Групповое переименование и объединение файлов txt, с алфавитно-числовой сортировкой  
0
2 / 2 / 0
Регистрация: 23.08.2023
Сообщений: 67
21.04.2025, 20:51  [ТС]
После запуска скрипта по пути C:\TEST появляются два пустых файла !nosortname.txt и !sortname.txt
а по адресу C:\TEST\TEST1 появляется файл all-prog_out.txt размером 14байт
с таким вот содержимым:

%
%
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
21.04.2025, 21:03
Цитата Сообщение от Dez33 Посмотреть сообщение
False
- это говорит о том, что файла по такому пути не существует. Проверьте пути и всё получится

Добавлено через 2 минуты
Частая ошибка в пути, это имя диска в кириллице, вместо латиницы...
1
2 / 2 / 0
Регистрация: 23.08.2023
Сообщений: 67
21.04.2025, 22:33  [ТС]
Пути переписал , еще нашел ошибку в названии файла , он назывался не all-prog.txt , а all-prog.txt.TXT на скринах видно
И о чудо , все получилось !!! Сортируется правильно , сами программы совпадают-ли они с оригиналами пока не проверял , но очень надеюсь что все хорошо . Большое тебе спасибо YuS_2
Единственное пока что заметил . в моем файле на выходе формат переноса строк CRLF , в вашем все строки LF кроме строк M98P7003 они CRLF, пока не знаю повлияет ли это на что то или нет
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
22.04.2025, 09:33
Цитата Сообщение от Dez33 Посмотреть сообщение
Единственное пока что заметил . в моем файле на выходе формат переноса строк CRLF , в вашем все строки LF кроме строк M98P7003 они CRLF,
Хмм, вот Ваш файл из ЧПУ:
Название: 2025-4-22 11-21-16.png
Просмотров: 85

Размер: 5.3 Кб

а это после обработки:
Название: 2025-4-22 11-24-19.png
Просмотров: 85

Размер: 4.4 КбНазвание: 2025-4-22 11-25-12.png
Просмотров: 88

Размер: 2.9 Кб
- но символы \r\n добавляются автоматически powershell-ом в конце строк, а программы, в данном случае, для PS, это по сути одна строка, поэтому после символа "%" (вставляется искусственно, а не берется из исходного файла) и после каждой секции программы (но именно в конце программы, а не после M98P7003) присутствует \r\n...
Не думаю, что это может повлиять на работоспособность. В крайнем случае, можно попробовать их заменять... если что - пишите.
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
22.04.2025, 11:27
Вот, немного измененный скрипт, с учетом символов LF в конце строк, в исходном файле:
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# Путь к файлу, считанному с ЧПУ:
$filein = '.\TEST\all-prog.txt'
 
# Путь к готовому файлу для заливки в ЧПУ:
$fileout = '.\TEST\all-prog_out.txt'
 
# Регулярки для работы с именами:
$reg = '^O\d{4}'
$regnumname = '^(O\d{4})\(?([^\(\)]+)\)?'
 
# Алгоритм сортировки:
$alphanum = {$_.name -replace '\d+',{$_.value.padleft(30,'0')}}
 
$basetxt = gc $filein -raw -enc utf8
$base = $basetxt -split '\n'
 
$bw = $null
$flg = $false
$bwork = [collections.generic.list[string]]::new()
 
$bw = foreach ($item in $base){
    if ($item -match '%'){if ($flg){$flg = $false}else{$flg = $true}}
    if ($flg -and $item -notmatch '%'){
        if ($item -match $reg){
            if ($bwork){
                [pscustomobject]@{
                    Number = $num
                    Name = $name
                    Data = ($bwork -join "`n"|out-string -nonew) + "`n"
                }
                $bwork = [collections.generic.list[string]]::new()
            }
            $item -match $regnumname|out-null
            $num,$name = $matches[1],$matches[2]
        } else {
            $bwork.add($item)
        }
    } elseif (!$flg -and $item -match '%'){
        if ($bwork){
            [pscustomobject]@{
                Number = $num
                Name = $name
                Data = ($bwork -join "`n"|out-string -nonew) + "`n"
            }
        }
        $bwork = [collections.generic.list[string]]::new()
    }
}
 
$bw|sort $alphanum|%{$i=1;"%" + "`n"|out-string -nonew}{
    "O"+$("$i".padleft(4,'0'))+'('+$_.name+')'+"`n"+$_.data
    $i++
}{"%"|out-string -nonew}|out-file $fileout -nonew
 
 
# Проверочные списки имен для сравнения, в конечном скрипте можно удалить:
#===здесь формируются файлы с несортированными и сортированными именами===
# как в файле, считанном с ЧПУ:
$bw|select number,name|%{$_.number+'('+$_.name+')'}|
out-file '!nosortname.txt'
 
# отсортированные имена с новыми номерами:
$bw|sort $alphanum|%{$i=1}{
    "O"+$("$i".padleft(4,'0'))+'('+$_.name+')'
    $i++
}|out-file '!sortname.txt'
#=======================end===============================================
- но, всё равно, смущает разный размер исходного и целевого файлов (они должны быть одинаковыми, т.к. изменений внутри файла не производится, т.е. количество символов должно быть одинаковым), хотя беглое сравнение показывает отличия только в именах программ с префиксами... необходима более подробная проверка.
0
2 / 2 / 0
Регистрация: 23.08.2023
Сообщений: 67
22.04.2025, 16:14  [ТС]
Хорошо сегодня все попробую
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
22.04.2025, 17:47
Цитата Сообщение от YuS_2 Посмотреть сообщение
смущает разный размер исходного и целевого файлов (они должны быть одинаковыми, т.к. изменений внутри файла не производится, т.е. количество символов должно быть одинаковым)
в общем, это из-за лишних конечных пробелов в именах программ в исходном файле, типа:
"O0240(17475) "
- если их убрать в исходном файле, то размеры совпадают. В целевой файл они сейчас не попадают.
Подсчет количества всех символов различий не выявил. Построчное сравнение без префиксов в наименовании тоже показало, что файлы одинаковые... в общем, можно пользоваться. Те самые конечные пробелы в наименовании программ, можно, в принципе, сохранять... если потребуется.
0
2 / 2 / 0
Регистрация: 23.08.2023
Сообщений: 67
23.04.2025, 01:19  [ТС]
Цитата Сообщение от YuS_2 Посмотреть сообщение
Те самые конечные пробелы в наименовании программ, можно, в принципе, сохранять... если потребуется.
Ну это было бы вообще очень хорошо

Ну а по факту , я сегодня пробовал мой способ , первый вариант скрипта и доработанный , на станке все три способа показали абсолютно одинаковые результаты , для станка видимо нет разницы как будет выглядеть перенос строк LF , CRLF или LF вместе с CRLF

Все три файла сравнил в Notepad++ , они полностью одинаковы, разница только в переносах строк и пробелах

На счет конечный пробелов , я посмотрел они как то расставлены странным образом в каких то именах есть в каких то их нет

Приложу последний файл скачанный со станка 22.04.25 и три после сортировки
Вложения
Тип файла: rar All-Prog 22.04.25(Со станка).rar (82.1 Кб, 13 просмотров)
Тип файла: rar Output(Мой способ).rar (81.3 Кб, 2 просмотров)
Тип файла: rar All-Prog Out(Скрипт YuS_2).rar (83.3 Кб, 0 просмотров)
Тип файла: rar All-Prog Out(Скрипт доработан YuS_2).rar (83.3 Кб, 0 просмотров)
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
23.04.2025, 04:01
Цитата Сообщение от Dez33 Посмотреть сообщение
это было бы вообще очень хорошо
Видимо, на сам процесс они не сильно влияют, но если очень хочется , изменения несложные и минимальные:
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# вариант с конечными пробелами в именах программ
# Путь к файлу, считанному с ЧПУ:
$filein = '.\TEST\All-Prog 22.04.25(Со станка).TXT'
 
# Путь к готовому файлу для заливки в ЧПУ:
$fileout = '.\TEST\all-prog_out_wspace.txt'
 
# Регулярки для работы с именами:
$reg = '^O\d{4}'
$regnumname = '^(O\d{4})([^\n]+)$'
 
# Алгоритм сортировки:
$alphanum = {$_.name -replace '[\(\)]' -replace '\d+',{$_.value.padleft(30,'0')}}
 
$basetxt = gc $filein -raw -enc utf8
$base = $basetxt -split '\n'
#$base.length
 
$bw = $null
$flg = $false
$bwork = [collections.generic.list[string]]::new()
 
$bw = foreach ($item in $base){
    if ($item -match '%'){if ($flg){$flg = $false}else{$flg = $true}}
    if ($flg -and $item -notmatch '%'){
        if ($item -match $reg){
            if ($bwork){
                [pscustomobject]@{
                    Number = $num
                    Name = $name
                    Data = ($bwork -join "`n"|out-string -nonew) + "`n"
                }
                $bwork = [collections.generic.list[string]]::new()
            }
            $item -match $regnumname|out-null
            $num,$name = $matches[1],$matches[2]
        } else {
            $bwork.add($item)
        }
    } elseif (!$flg -and $item -match '%'){
        if ($bwork){
            [pscustomobject]@{
                Number = $num
                Name = $name
                Data = ($bwork -join "`n"|out-string -nonew) + "`n"
            }
        }
        $bwork = [collections.generic.list[string]]::new()
    }
}
 
$bw|sort $alphanum|%{$i=1;"%" + "`n"|out-string -nonew}{
    "O"+$("$i".padleft(4,'0'))+$_.name+"`n"+$_.data
    $i++
}{"%"|out-string -nonew}|out-file $fileout -nonew
 
 
# Проверочные списки имен для сравнения, в конечном скрипте можно удалить:
#===здесь формируются файлы с несортированными и сортированными именами===
# как в файле, считанном с ЧПУ:
$bw|select number,name|%{$_.number+$_.name}|
out-file '!nosortname.txt'
 
# отсортированные имена с новыми номерами:
$bw|sort $alphanum|%{$i=1}{
    "O"+$("$i".padleft(4,'0'))+$_.name
    $i++
}|out-file '!sortname.txt'
#=======================end===============================================
ну и проверка на количество символов в исходном и целевом файлах:
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$fin = '.\TEST\All-Prog 22.04.25(Со станка).TXT'
$fout = '.\TEST\all-prog_out_wspace.txt'
$fcin = '.\TEST\count_in_wsp.txt'
$fcout = '.\TEST\count_out_wsp.txt'
 
$arr1 = gc $fin -raw
$arr2 = gc $fout -raw
 
$count1 = [ordered]@{}
$count2 = [ordered]@{}
 
foreach ($item in $arr1.tochararray()){
    $count1[$item] += 1
}
 
foreach ($item in $arr2.tochararray()){
    $count2[$item] += 1
}
 
$count1.getenumerator()|sort key|out-file $fcin
$count2.getenumerator()|sort key|out-file $fcout
Добавлено через 3 минуты
PS ещё поправил строку сортировки, ибо со скобками сортировка не совсем верная получается...
1
 Аватар для volodin661
7093 / 2324 / 353
Регистрация: 10.12.2013
Сообщений: 8,019
23.04.2025, 10:02
В 800-раз говорю, какие нафиг файлы ?

У вас под руками об'ектный шелл, с таким абстракциями и возможностями внутри, которые древней абстракции по имени 'файловая система' и не снились даже.

Tри командлета надо:
1) Parse-FanucDumpFile , который превращает этот текстовый фануковский дамп файл в коллекцию об'ектов.
2) Resort-Objects, который перецепляет cnc-программы внутри об'ектов к другим ячейкам согласно правилам желаемой сортировки
3) Create-FanucDumpFile, который превращает коллекцию об'ектов обратно в плоский фануковский дамп-файл.

PowerShell
1
2
3
4
5
6
7
$all = Parse-FanucDumpFile xp26.txt
 
$втулки = $all | where ProgramName -like *VTULK*
 
Resort-Objects $втулки {$ProgramName -match '(\d+)'; $matches.1}
 
$втулки, $штифты, $метизы   | Create-FanucDumpFile -Path resorted_vtulki_shtifts_metiz.txt
Вот так выглядит об'ектный шелл здорового человека, здесь вам не баш.


Понятно, что с сортировкой бардак, посколько имена програм не формализованы;
тут 2 подхода: либо формализовать и переименовать, либо к каждому типу имён цеплять свой scriptblock с регулярным выражением. второе менее болезненно, но по трудозатратм одно и то же.

Что касается человеческого доступа к информации, находясь возле станка со смартфоном,
то для этого надо загнать в каком-то виде нужную инфу в github. Мобильное приложение для Github имеется

Добавлено через 9 минут
PS: в github надо загонять в любом случае, время сейчас такое.
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
23.04.2025, 10:28
Цитата Сообщение от volodin661 Посмотреть сообщение
В 800-раз говорю, какие нафиг файлы ?
а где файлы-то?
нет их уже... исключительно файл со входными данными и целевой, отсортированный файл - всё, как ты говоришь, объекты со всеми плюшками, по-повершелловски или по-ли-холмсовски...
Ну, если только в командлеты всё оформить, но это мне уже лень, а если есть желание у кого... на код копирайтов не ставлю, если что.
0
 Аватар для volodin661
7093 / 2324 / 353
Регистрация: 10.12.2013
Сообщений: 8,019
23.04.2025, 10:35
Parse-FanucDumpFile
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
param( [Parameter(Mandatory)][string]$file )
 
class FanucDump
{
    $CellNumber     # 000001
    $ProgramName    # VTULKA20
    $Program        # G-code lines (raw text)
    FanucDump($c,$n,$p) {
        $this.CellNumber  = [int]$c;
        $this.ProgramName = [string]$n;
        $this.Program     = $p
    }
}
$fd_list = [Collections.Generic.List[FanucDump]]::new();
 
switch -regex (get-content $file )
{
    '^O(\d+)(.+)$'
 
    {
        $CellNumber  =  [int]$matches.1        
        $ProgramName =  $matches.2 -Replace '[()]' -Replace '^\s+' -Replace '\s+$'
        $Program     =  [Collections.Generic.List[String]]::new()
        $fd_item     =  [FanucDump]::new($CellNumber, $ProgramName, $Program )
        $fd_list.Add($fd_item)
    }
    
    '^[%]' { continue }     # отфильтровать 'мусор'
 
 
    default
 
    {
        $fd_item.Program.Add($_)
    }
}
 
$fd_list
output:
Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
  3484 ES8.663.444 KOLCO UPORNOE          {(2M28)(ST20)(14), , M98P7001, …}
      3485 ES8.671.276 RUCHKA                 {(7M59)(N)(14), , M98P7001, …}
      3486 ES8.908.034 VINT                   {(1M33)(40X)(10), , M98P7001, …}
      3487 ES8.935.857 GAYKA                  {(3M51)(LS59)(24), , M98P7001, …}
      3488 ES8.935.861 GAYKA F                {(4M57)(LS59)(22), , M98P7001, …}
      3489 ES8.955.022 VTULKA                 {(1M18)(LS59)(10), , M98P7001, …}
      3500 EU8.220.391 VTULKA                 {(2M10)(ST20)(10), , M98P7001, …}
      3550 EU9.440.644 SHAYBA                 {(1M35)(ST20)(14), , M98P7001, …}
      3600 GR7.732.632 KONTAKT F              {(4M39)(30HGSA)(10), , M98P7001, …}
      3650 GR8.221.267-27 VTULKA              {(1M29)(LS59)(6), , M98P7001, …}
      3651 GR8.221.267-32 VTULKA              {(1M49)(A12)(6), , M98P7001, …}
      3652 GR8.221.267-39 VTULKA              {(2M21)(A12)(8), , M98P7001, …}
      3653 GR8.221.267-45 VTULKA              {(2M40)(A12)(14), , M98P7001, …}
      3654 GR8.927.583 SHPILKA                {(2M35)(30HGSA)(10), , M98P7001, …}
      3655 GR8.927.587 SHPILKA                {(2M53)(30HGSA)(10), , M98P7001, …}
      3700 HEC8.241.014 KOLCO                 {(4M30)(ST20)(22), , M98P7001, …}
      4100 MVIA.578292.001 SHPILKA            {(3M25)(LS59)(8), , M98P7001, …}
      4101 MVIA.711141.021 VTULKA             {(1M28)(LS59)(12), , M98P7001, …}
      4102 MVIA.711263.002 VVERTISH           {(2M13)(ST45)(8), , M98P7001, …}
      4103 MVIA.711263.002-01 VVERTISH F      {(3M3)(ST45)(8), , M98P7001, …}
      4104 MVIA.711263.002-02 VVERTISH F      {(3M3)(ST20)(8), , M98P7001, …}
      4105 MVIA.711263.003 VTULKA             {(2M7)(ST20)(9), , M98P7001, …}
      4106 MVIA.711263.004 VTULKA             {(5M35)(14X17)(18), , M98P7001, …}
      4107 MVIA.711263.005 FUTORKA F          {(4M16)(14X17)(14), , M98P7001, …}
      4108 MVIA.711263.005-01 FUTORKA F       {(4M31)(14X17)(14), , M98P7001, …}
      4109 MVIA.711351.008 VTULKA             {(3M20)(LS59)(11), , M98P7001, …}
      4110 MVIA.711641.003 VTULKA             {(2M25)(ST45)(12), , M98P7001, …}
      4111 MVIA.711641.003-01 VTULKA          {(3M54)(ST45)(12), , M98P7001, …}
      4112 MVIA.711661.001 VTULKA             {(3M3)(ST45)(10), , M98P7001, …}
2
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
23.04.2025, 10:42
Цитата Сообщение от volodin661 Посмотреть сообщение
-Replace '^\s+' -Replace '\s+$'
это можно заменить на:
PowerShell
1
$matches.2.trim()
1
 Аватар для volodin661
7093 / 2324 / 353
Регистрация: 10.12.2013
Сообщений: 8,019
23.04.2025, 12:15
Resort-FanucDump.ps1

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
param(
        $obj,
        [Parameter(Mandatory=1)]
        [scriptblock]
        $sb 
    )
class FanucDump
{
    $CellNumber
    $ProgramName
    $Program
    FanucDump($cell,$name,$prog) {
        $this.CellNumber  = [int]$cell;
        $this.ProgramName = [string]$name;
        $this.Program     = [string]$prog
    }
}
$sorted = $obj | sort-object $sb
$delegate = [Func[Object, Object, Object]] { param($a, $b) [FanucDump]::new($a.CellNumber, $b.ProgramName, $b.Program) }
[System.Linq.Enumerable]::Zip($obj, $sorted, $delegate)

никто же не сказал, что там у него русский X стоит вместо общечеловеческого латинского.
я чуть с ума не сошёл при отладке - не сортируется и всё

Добавлено через 15 минут
PowerShell
1
2
3
4
5
$all = Parse-FanucDumpFile all.txt
 
$some=$all | where  cellnumber -in (501..514)
 
Resort-FanucDump $some {$ProgramName -match 'X(\d+)'; [int]$matches.1}
Output:

До Resort

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CellNumber ProgramName                        Program
---------- -----------                        -------
       501 NLP8.902.018 VINT                  {(4M45)(N)(8) ,  , M98P7001 ,  …}
       502 NLP8.903.037 VINT                  {(3M35)(14X17)(8) ,  , M98P7001 ,  …}
       503 NLP8.930.049 GAYKA F               {(4M26)(14X17)(8) ,  , M98P7001 ,  …}
       504 OST.107.670.111.001-86 SHAYBA VID5 {(1M38)(ST45)(10) ,  , M98P7001 ,  …}
       505 OST.107.670.111.001 VTULKA M5-2.5  {(2M33)(ST20)(9),  , M98P7001 ,  …}
       506 OST4.G0.822.200 VTULKA 2.7X6       {(1M18)(ST20)(6),  , M98P7001 ,  …}
       507 OST4.G0.822.200 VTULKA 3.2X3       {(1M10)(ST20)(6),  , M98P7001 ,  …}
       508 OST4.G0.822.200 VTULKA 3.2X5       {(1M15)(ST20)(6),  , M98P7001 ,  …}
       509 OST4.G0.822.200 VTULKA 3.2X8       {(1M20)(ST20)(6),  , M98P7001 ,  …}
       510 OST4.G0.822.200 VTULKA 3.2X14      {(1M30)(ST20)(6),  , M98P7001 ,  …}
       511 OST4.G0.892.006 SHPILKA 4X10       {(2M20)(30HGSA)(8),  , M98P7001 ,  …}
       512 OST4.G0.892.006 SHPILKA 4X16       {(1M57)(30HGSA)(10) ,  , M98P7001 ,  …}
       513 OST4.G0.892.006 SHPILKA 6X10       {(2M48)(30HGSA)(12) ,  , M98P7001 ,  …}
       514 OST4.G0.893.013 GAYKA M4           {(2M44)(30XGCA)(8),  , M98P7001 ,  …}
после Resort

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CellNumber ProgramName                        Program
---------- -----------                        -------
       501 NLP8.902.018 VINT                  (4M45)(N)(8)    M98P7001    T303(P) S2400M3 G0Z-1 G0X9  G1X3.88F0.2 G1Z-0.3F0.2 G1Z0.73F0.01  G1X7.9F0.02 …
       502 NLP8.903.037 VINT                  (3M35)(14X17)(8)    M98P7001    T303(P) S3000M3 G0Z-1 G0X9  G1X-0.5F0.2 G1Z-0.3F0.2 G1Z0F0.01 G1X2.08F0.02…
       503 NLP8.930.049 GAYKA F               (4M26)(14X17)(8)    M98P7001    T303(P) S2750M3 G0Z-1 G0X9  G1X-0.5F0.2 G1Z-0.3F0.2 G1Z0F0.01 G1X6.348F0.0…
       504 OST.107.670.111.001-86 SHAYBA VID5 (1M38)(ST45)(10)    M98P7001    T303(P) S2900M3 G0Z-1 G0X11 G1X-0.5F0.2 G1Z-0.3F0.2 G1Z0F0.01 G1X9.9F0.02 …
       505 OST.107.670.111.001 VTULKA M5-2.5  (2M33)(ST20)(9)   M98P7001    T303(P) S3000M3 G0Z-1 G0X10 G1X-0.5F0.2 G1Z-0.3F0.2 G1Z0F0.01 G1X8.5F0.02 G1…
       506 OST4.G0.893.013 GAYKA M4           (2M44)(30XGCA)(8)   M98P7001    T303(P) S3000M3 G0Z-1 G0X9  G1X-0.5F0.2 G1Z-0.3F0.2 G1Z0F0.01 G1X7.5F0.02 …
       507 OST4.G0.822.200 VTULKA 3.2X3       (1M10)(ST20)(6)   M98P7001    T303(P) S3000M3 G0Z-1 G0X7  G1X-0.5F0.2 G1Z-0.3F0.2 G1Z0F0.01 G1X5.5F0.02 G1…
       508 OST4.G0.822.200 VTULKA 3.2X5       (1M15)(ST20)(6)   M98P7001    T303(P) S3000M3 G0Z-1 G0X7  G1X-0.5F0.2 G1Z-0.3F0.2 G1Z0F0.01 G1X5.5F0.02 G1…
       509 OST4.G0.822.200 VTULKA 2.7X6       (1M18)(ST20)(6)   M98P7001    T303(P) S3000M3 G0Z-1 G0X7  G1X-0.5F0.2 G1Z-0.3F0.2 G1Z0F0.01 G1X5.5F0.02 G1…
       510 OST4.G0.822.200 VTULKA 3.2X8       (1M20)(ST20)(6)   M98P7001    T303(P) S3000M3 G0Z-1 G0X7  G1X-0.5F0.2 G1Z-0.3F0.2 G1Z0F0.01 G1X5.5F0.02 G1…
       511 OST4.G0.892.006 SHPILKA 4X10       (2M20)(30HGSA)(8)   M98P7001    T303(P) S2750M3 G0Z-1 G0X9  G1X-0.5F0.2 G1Z-0.3F0.2 G1Z0F0.01 G1X2.18F0.02…
       512 OST4.G0.892.006 SHPILKA 6X10       (2M48)(30HGSA)(12)    M98P7001    T303(P) S3000M3 G0Z-1 G0X13 G1X6  G1Z-0.3F0.2 G1Z0F0.01 G0Z-1 G1X-0.5F0.…
       513 OST4.G0.822.200 VTULKA 3.2X14      (1M30)(ST20)(6)   M98P7001    T303(P) S3000M3 G0Z-1 G0X7  G1X-0.5F0.2 G1Z-0.3F0.2 G1Z0F0.01 G1X5.5F0.02 G1…
       514 OST4.G0.892.006 SHPILKA 4X16       (1M57)(30HGSA)(10)    M98P7001    T303(P) S2750M3 G0Z-1 G0X11 G1X-0.5F0.2 G1Z-0.3F0.2 G1Z0F0.01 G1X2.5F0.0…
2
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
23.04.2025, 12:19
Цитата Сообщение от volodin661 Посмотреть сообщение
никто же не сказал, что там у него русский X стоит вместо общечеловеческого латинского.
где, там? В исходном файле ни одного Х нет, вроде бы...

Добавлено через 4 минуты
Цитата Сообщение от volodin661 Посмотреть сообщение
Program
кстати, нет смысла оставлять на строки разбитым, склеить и "сюда-строкой" туда закатать
0
 Аватар для volodin661
7093 / 2324 / 353
Регистрация: 10.12.2013
Сообщений: 8,019
23.04.2025, 12:51
Цитата Сообщение от YuS_2 Посмотреть сообщение
кстати, нет смысла оставлять на строки разбитым, склеить и "сюда-строкой" туда закатать
думал об этом, но пока не решил, что лучше. С разбитыми для пользования проще - если вдруг посмотреть.
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
23.04.2025, 12:51
Цитата Сообщение от volodin661 Посмотреть сообщение
после Resort
где-то ошибка:
Code
1
2
3
4
5
CellNumber ProgramName                        Program
---------- -----------                        -------
...
       508 OST4.G0.822.200 VTULKA 3.2X5
       509 OST4.G0.822.200 VTULKA 2.7X6
при алфавитно-цифровой, должно быть наоборот.
0
 Аватар для volodin661
7093 / 2324 / 353
Регистрация: 10.12.2013
Сообщений: 8,019
23.04.2025, 13:12
Сначала с помощью sqlite все сделал. почти. запнулся на разборе строки под сортировку; в sqlite почему-то не реализована
возможность достать match-object после проверки регекспом.

Добавлено через 1 минуту
Цитата Сообщение от YuS_2 Посмотреть сообщение
при алфавитно-цифровой, должно быть наоборот.
это просто test был (достал цифры после X). Тот самый X, да.

Добавлено через 14 минут
Корейцы решили сэкономить, пристроили к станку старую Фануковскую стойку - ни Вай Фая, ни просто Ethernet, так-то можно было бы прямо из стойки вытаскивать.
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
23.04.2025, 14:04
Цитата Сообщение от volodin661 Посмотреть сообщение
в sqlite почему-то не реализована
возможность достать match-object после проверки регекспом.
в sqlite и сами регэкспы по умолчанию не включены
Но я так понимаю, что у тебя они уже работают?
SQL
1
SELECT regexp_substr('Meet me at 10:30', '\d+:\d+');
вернет:
Code
1
10:30

- это отсюда

Добавлено через 1 минуту
доки
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.04.2025, 14:04

Групповое переименование файлов
Прошу прощения, если повторюсь и где-то уже дан ответ на этот вопрос, но я, к сожалению, не нашёл....

Групповое переименование файлов по маске
Доброго времени суток! В написании командных скриптов только разбираюсь. Помогите, пожалуйста,...

Групповое переименование файлов
Надеюсь, что раздел выбрал правильно. Подскажите пожалуйста, как переименовать файлы вида ...

Неправильная сортировка при групповом переименовании файлов
Имеются файлы вида 1.ext,2ext...100.ext... Задача привести их к виду скажем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru