所以我有一个非常旧的文件,有数千行(我猜是手工生成的),我试图将它们移动到rdb中,但这些行没有格式/模式转换为列。例如,文件中的行看起来像:
blah blahsdfas laslkdlasdj aksdjla
sldks slslsl lsdlksldj lsdjlfslk
当我看到它时,我可以说它有四个字段,主要是尝试使用awk,但它没有像预期的那样打印列,因为列之间的空格不是tab或具有相等的空格计数。
你们认为有可能提取出来吗?如果是,有人可以帮助与php片段?
使用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
}
看起来preg_split('/'s{2,}/', $line)
会把它分开。分隔符为两个或多个空白字符
如果这是手工维护的,您可能需要手动清理(例如,可能有人输入了两个空格,但不打算开始下一列)。只有几千行,幸亏手工清理很繁琐,但并非不可能。