Я использую PHP файл, который выполнить СЕПГ:удалить первые два полукокса из каждой строки в текстовом файле -sed
shell_exec("C:\\cygwin64\\bin\\bash.exe --login -c 'sed -i -r \'s/.{2}//\' $text_files_path/File.txt 2>&1'");
Это заявление будет удалить первые 2 символа из file.txt. Как удалить первый символ из (каждой строки) в файле?
File.text:
< TTGCATGCAAAAATTT
< AAAAAAATTTTGCTGA
< AAGGTTCCCCCTTAGT
Edit 1:
shell_exec("C:\\cygwin64\\bin\\bash.exe --login -c 'sed -i -r 's/^..//' $text_files_path/File.txt 2>&1'");
Это работает, но это сцепить все линии вместе: File.text после вышеуказанной команды:
TTGCATGCAAAAATTTAAAAAAATTTTGCTGAAAGGTTCCCCCTTAGT
Я не знаю, откуда у вас возникла мысль, что вы должны называть sed через bash с PHP, но это определенно ** не является правильным способом сделать это. Откройте файл и прочитайте строки в PHP. Если все, что вы хотите сделать, это удалить первые два символа, вам даже не нужно использовать регулярные выражения; простая '$ line = substr ($ line, 2);' будет лучшим вариантом. –
@Tom Fenech Я использую файл более 70 ГБ. – sara
Использование 'sed -i' не делает ничего волшебного - вам все равно придется создать две копии вашего огромного файла. Вы должны использовать PHP, открыть входной файл и записать подстроку в другой файл. –