Как разделить вывод на различные файлы?

Это, кажется, проблема кодирования. Может быть символ в строке запроса, которая не может быть интерпретирована набором символов соединений. Попытайтесь использовать отличный набор символов для соединения или установите надлежащее значение по умолчанию в mysql.conf (my.conf). Распечатайте или зарегистрируйте строку запроса перед увольнением ее, для понимания, на что строку после mysql_real_escape_string () похожа функция.

1
задан 13 June 2014 в 08:40
5 ответов
grep -E '^foo' input.txt > foo.txt
grep -E '^bar' input.txt > bar.txt

mbp-000234: ~ dmourati $ cat foo.txt

foo xxx yyy zzz
foo xxx yyy zzz
foo xxx yyy zzz
foo xxx yyy zzz
foo xxx yyy zzz

mbp-000234: ~ dmourati $ cat bar. txt

bar xxx yyy zzz
bar xxx yyy zzz
4
ответ дан 3 December 2019 в 16:34
grep ^foo input.txt > foo.txt
grep ^bar input.txt > bar.txt

^ обеспечит соответствие только началу строки, поэтому он будет работать, даже если остальная часть строки будет выглядеть так:

foo xxx yyy zzz bar
1
ответ дан 3 December 2019 в 16:34
awk '{ f = $1 ".txt"; print > f }' file
1
ответ дан 3 December 2019 в 16:34

Попробуйте этот код и при необходимости внесите любые изменения, так как я не пробовал запускать его.

awk '
    BEGIN { foo="foo.txt"; bar="bar.txt" }
    {if ($1 == "foo")
         $0 >> foo;
     else
             $0 >> bar;
    }' sourcefilename
1
ответ дан 3 December 2019 в 16:34

Вы также можете распределить файловый поток с помощью tee , а затем разделить его параллельно:

<file tee >(grep '^foo' > foo.txt) >(grep '^bar' > bar.txt) > /dev/null

Результат:

$ tail -n+1 foo.txt bar.txt
==> foo.txt <==
foo xxx yyy zzz
foo xxx yyy zzz
foo xxx yyy zzz
foo xxx yyy zzz
foo xxx yyy zzz

==> bar.txt <==
bar xxx yyy zzz
bar xxx yyy zzz
0
ответ дан 3 December 2019 в 16:34

Теги

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