Файл с нерегулярными пробелами и вкладками разделен / разнесен по столбцам - PullRequest
2 голосов
/ 02 декабря 2011

Итак, у меня есть очень старый файл с тысячами строк (я думаю, сгенерированный вручную), и я пытаюсь переместить их в rdb, но у строк нет формата / шаблона для преобразования в столбцы. Скажем, например, строки в файле выглядят так:

blah   blahsdfas    laslkdlasdj      aksdjla
sldks  slslsl      lsdlksldj           lsdjlfslk

Я мог бы сказать, что у него четыре поля, когда я смотрю на него, в основном пытался использовать awk, но он не печатал столбец, как ожидалось, потому что пробел между столбцами не табуляцией или с одинаковым количеством пробелов.

Вы, ребята, думаете, что можно извлечь? Если да, может ли кто-нибудь помочь с фрагментом php?

Ответы [ 2 ]

5 голосов
/ 02 декабря 2011

Используя preg_split(), вы можете разбить строку, используя один или несколько пробельных символов в качестве разделителей:

$lines = file('filename', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach($lines as $line)
{
    $pieces = preg_split('/\s+/', $line);
    // do something with pieces
}
2 голосов
/ 02 декабря 2011

Похоже, preg_split('/\s{2,}/', $line) разделит это на части. Это разделится на два или более пробельных символа.

Если это было сделано вручную, вам, возможно, придется выполнить ручную очистку (например, возможно, кто-то набрал два пробела, но не намеревался начать следующий столбец). К счастью, всего на тысячах строк ручная очистка утомительна, а не невозможна.

...