Новый текстовый файл на основе пустой строки - PullRequest
0 голосов
/ 09 ноября 2011

У меня есть текстовый файл, который выглядит следующим образом:

6789 Here is a bunch of text

4565 More text......................................................
.....etc

Мне нужно вынуть первое слово (цифры) и создать новый файл, содержащий весь следующий текст, превращая первое слово в его имя файладо пустой строки, а затем повторите создание множества текстовых файлов.

Ответы [ 2 ]

2 голосов
/ 09 ноября 2011

строка awk может это сделать:

awk 'BEGIN{RS=""} {fn=$1;gsub(/^[0-9]+\s/,"");print $0 > (fn".txt")}' yourFile

test :

kent$  l 
total 0
(no file in current dir)

kent$  echo "6789 Here is a bunch of text

4565 More text......................................................
.....etc"|awk 'BEGIN{RS=""} {fn=$1;gsub(/^[0-9]+\s/,"");print $0 > (fn".txt")}'

kent$  ls
4565.txt  6789.txt

and, the contents are:

kent$  head *.txt
==> 4565.txt <==
More text......................................................
.....etc

==> 6789.txt <==
Here is a bunch of text
0 голосов
/ 09 ноября 2011

awk и Split выполнит (часть) работу:

$ awk '{print $1} < foo | split -p '^$'

Если вам действительно нужно переименовать каждый файл в соответствии с номером в начале файла, тогда вы, вероятно, захотите решить эту проблему в perl или python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...