Конвертировать STDIN в один файл в строке - PullRequest
1 голос
/ 20 декабря 2009

Я хотел бы написать небольшой скрипт, используя стандартные инструменты сценариев оболочки linux (sed, awk и т. Д.), Чтобы создать один выходной файл на строку ввода. Например, задан следующий входной файл 'input':

line1
line2
line3

Я хотел бы запустить команду.

$ cat input | my_prog

Где 'my_prog' - это скрипт, который создает три выходных файла, out.1, out.2, out.3

$ cat out.1
line1 

$ cat out.2
line2

$ cat out.3
line3

Ответы [ 4 ]

2 голосов
/ 20 декабря 2009
count=0
for line in $(cat input)
do
echo $line > out.$count
let count=count+1
done
1 голос
/ 20 декабря 2009

с использованием awk

awk '{print $0 > "out_"++d".txt"}' file
1 голос
/ 20 декабря 2009
perl -ne 'open my $fh, ">out.$." && print $fh $_' input.txt
0 голосов
/ 20 декабря 2009
#!/bin/bash

while IFS= read -r line; do
    echo "$line" > out.$((++i))
done < /path/to/input
...