按空格分割文本文件

按空格分割文本文件

我有一个非常大的文本文件,其中包含多列数据。

即 1312.4123 asdkofADkofaO213 dakofasdjodas 2013 年 3 月星期五 15:23:11 .. .. .. 等等。

我希望根据列(以空格分隔)将此文本文件拆分为多个子集。Column1.txt 将包含 1312.4123,Column2.txt 将包含 dkofADkofa0213 等,用于所有后续行。如果我必须总结一下我想要的,那就是在 excel 中将文本转换为列,但是文件大小阻止我使用这样的程序。

我正在使用提供命令行选项的 Linux。

答案1

这应该能给你你想要的东西:

列=`head -1 数据文件.txt | wc -w`
对于 i 在 `seq 1 $columns`
    awk'{打印$'$i'}'<数据文件.txt>列$i.txt
完毕

假设文件中的所有行都有与第一行相同的列数。

答案2

AWK 是一个基于解释器的编程语言.它们倾向于支持读取和写入文件。

这里的魔力在于:

  • NF:每个文件的字段数(空格是默认分隔符)
  • :用户变量
  • $i:内置字段变量 $1 ... $NF($0 为整行)
  • “列”我:字符串的默认运算符是连接(不需要“a”+“b”或“a”。“b”)
  • > 文件:输出重定向

例如:

$ ll
总计 140
drwxr-xr-x 2 jaroslav jaroslav 4096 3月16日 07:11 回答
drwxr-xr-x 3 jaroslav jaroslav 4096 十二月 7 12:38 差异
-rw-r--r-- 1 jaroslav jaroslav 214 十二月 7 12:38 diff.tar.gz
-rw-r--r-- 1 jaroslav jaroslav 700 4月 5日 02:37 fonts.sh
-rw-r--r-- 1 jaroslav jaroslav 4 四月 5 15:52 嗨
-rw-r--r-- 1 jaroslav jaroslav 0 3月 19 05:06 moo
-rw-r--r-- 1 jaroslav jaroslav 10240 十二月 7 12:08 moo.tar
-rw-r--r-- 1 jaroslav jaroslav 23147 3月 16 08:29 ob.rc.xml
drwxr-xr-x 3 jaroslav jaroslav 4096 3月 16 03:08 重命名
drwxr-sr-x 2 jaroslav 游戏 4096 3月 19 05:07 setgid
drwxr-xr-x 2 jaroslav jaroslav 69632 3月 11 00:42 次
-rw-r--r-- 1 jaroslav jaroslav 92 三月 11 00:14
drwxr-xr-x 4 jaroslav jaroslav 4096 3月 22 00:15 wkhtmltoimage
$ ls -l  | awk '{ 
    for (i=1; i<=NF; i++) {
        file="column" i; 
        print $i > file 
    }
  }'
$ cat column9|列
答案 fonts.sh moo.tar setgid wkhtmltoimage
与 ob.rc.xml 时间不同
diff.tar.gz moo 重命名而

$ cat column1|列
总计 -rw-r--r-- -rw-r--r-- drwxr-xr-x -rw-r--r--
drwxr-xr-x -rw-r--r-- -rw-r--r-- drwxr-sr-x drwxr-xr-x
drwxr-xr-x -rw-r--r-- -rw-r--r-- drwxr-xr-x

相关内容