создание специализированного файла статистики из файлов текущий каталог

У меня есть файлы как они:

$ cat A9E27.txt
person,42%
person,60%
$ cat ffn2eG6.txt
train,85%
$ cat sBHFgkv.txt  
person,85%
person,73%
chair,44%
person,57%
$ cat A8eVAmK.txt

и т.д. и т.д. Некоторые мои txt файлы на самом деле даже пусты. как я могу создать файл, который похож на это

1,A9E27.txt,person,42%,person,60%
2,ffn2eG6.txt,train,85%
3,sBHFgkv.txt,person,85%,person,73%,chair,44%,person,57%
4,A8eVAmK.txt
5, etc etc 

куда 1 шоу, номер документа, когда я сортирую свои имена файлов в алфавитном порядке что-то как ls-1 | вид и A9E27.txt, является именем файла и каждой строкой содержания файла, происходит перед разделенным запятой

ОБНОВЛЕНИЕ: ответ SchrodingersScat из Ubuntu IRC почти корректен на stdout:

$ for i in * ; do echo -n "$i"; cat "$i" | sed ':a;$!{N;s/\n/, /;ba;}' ; done
5Co16.txtA9E27.txtperson,42%, person,60%
ffn2eG6.txttrain,85%
Kkc4e.txtsBHFgkv.txtperson,85%, person,73%, chair,44%, person,57%

дает корректный ответ, но как я могу сохранить этот результат, показанный на stdout в файл правильно?

0
задан 28 October 2016 в 05:23

2 ответа

kerframil от bash IRC:

$  i=1; for f in *; do [[ -f $f ]] || continue; data=$(tr '\n' ',' < "$f"); printf '%s,%s,%s\n' "$((i++))" "$f" "${data%,}"; done > ../../in-your-file-correctly.txt

примечания:

/join #bash 
1
ответ дан 28 September 2019 в 07:35

Как насчет того, чтобы использовать perl в хлебают режим?

$ perl -F'\n' -0777ne 'print join(",", ++$n, $ARGV, @F), "\n"' *.txt
1,A8eVAmK.txt
2,A9E27.txt,person,42%,person,60%
3,ffn2eG6.txt,train,85%
4,sBHFgkv.txt,person,85%,person,73%,chair,44%,person,57%

Примечание, что оболочка *.txt шарик заставляет файлы быть обработанными в порядке сопоставления по умолчанию Вашей локали - который не мог бы быть тем, что Вы считаете "алфавитными" (хотя это должно совпасть с, что произведенный ls -1, я думаю).

Для сохранения результата в файл перенаправьте его:

perl -F'\n' -0777ne 'print join(",", ++$n, $ARGV, @F), "\n"' *.txt > somefile
1
ответ дан 28 September 2019 в 07:35

Другие вопросы по тегам:

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