Как можно сохранить строки из текстового файла длиной в 8 символов и к каждой строке добавить =AB-787-344. Нужно регулярное выражение или программу что знаете посоветуйте. Размер файла 375 гигабайт. EmEditor не открывает такие файлы.
~ cat test_file
gsdfasdgagadfgdfg
a534535235rgggadfg
fgadfgadfgadfgadfgad
afgadfgadfgadfg
adfgadfgadfgadf
adfgadfgadfg
~ cut -b -8 test_file | sed 's/$/=AB-787-344/' | >> test_with_suffix
~ cat test_with_suffix
gsdfasdg=AB-787-344
a5345352=AB-787-344
fgadfgad=AB-787-344
afgadfga=AB-787-344
adfgadfg=AB-787-344
adfgadfg=AB-787-344
~ awk '{print substr($0,0,8) "=AB-787-344";}' test_file >> test_with_suffix_2
~ cat test_with_suffix_2
gsdfasdg=AB-787-344
a5345352=AB-787-344
fgadfgad=AB-787-344
afgadfga=AB-787-344
adfgadfg=AB-787-344
adfgadfg=AB-787-344
А как этот скрипт запустить ?например вот так
ну или так
Просто в bash-e.А как этот скрипт запустить ?
Терминал Linux под любой оболочкой bash, fish, zsh, sh.А как этот скрипт запустить ?
Windows у меня.Терминал Linux под любой оболочкой bash, fish, zsh, sh.
Если у тебя винда то не плохо такие моменты уточнять прямо в вопросе.
split -l <num_of_lines> name_of_file
test.ps1Windows у меня.
Param (
[string]$file_name,
[string]$add_string,
[string]$edited_file
)
$file = Get-Content $file_name
foreach ($line in $file)
{
$new_line = $line + $add_string
Out-File -FilePath $edited_file -InputObject $new_line -Append
}
Установите Git с сайта https://git-scm.com/, выбрав в процессе установки опцию Git Bash Here. Для запуска Bash в Windows, вам потребуется просто клацнуть по ярлыку Git Bash на рабочем столе или в меню Пуск и дождаться приглашения командной строки вида:Windows у меня
username@HOST MINGW32 ~
$
egrep -a -o '\b[[:print:]]{8,}\b' Ваш_файл
egrep -a -o '\b[[:print:]]{8,}\b' Ваш_файл | sort -u
Он хотел только первые 8 символов с начала каждой строки. так что надо поправитьtest.ps1
Запускать:Код:Param ( [string]$file_name, [string]$add_string, [string]$edited_file ) $file = Get-Content $file_name foreach ($line in $file) { $new_line = $line + $add_string Out-File -FilePath $edited_file -InputObject $new_line -Append }
.\test.ps1 .\news.txt ' test' .\new_file.txt
.\news.txt - твой файл
' test' - строка которая добавляется к каждой строке из файла
.\new_file.txt - новый файл куда все сохранится
Проверил на 22гб файле, работает быстро, не знаю как с 375гб будет, убедись что памяти хватает на диске, так как скрипт создаст такой же файл(чуть больше размером)
на$new_line = $line + $add_string
$new_line = $line.Substring(0,8) + $add_string