将文件拆分成段?

时间:2009-09-02 12:44:13

标签: bash file text split

我有一个包含文本数据的文件,这些文件由 分号“;” 分隔。我希望将数据分开,换句话说,将 ; 分开,并将数据写入输出文件。有没有办法处理bash脚本?

4 个答案:

答案 0 :(得分:4)

您最有可能希望awk将FS(字段分隔符变量)设置为';'

Awk是基于列的数据的首选工具(有些人更喜欢Perl,但不喜欢我)。

echo '1;2;3;4;5
6;7;8;9;10' | awk -F\; '{print $3" "$5}'

输出:

3 5
8 10

如果您只想将分号转换为换行符:

echo '1;2;3;4;5
6;7;8;9;10' | sed 's/;/\n/g'

在不同的行上输出数字1到10。

显然这些命令只是使用我的测试数据。如果要在自己的文件中使用它们,请使用以下内容:

sed 's/;/\n/g' <input_file >output_file

答案 1 :(得分:3)

#!/bin/bash

while read -d ';' ITEM; do
    echo "$ITEM"
done

答案 2 :(得分:1)

尝试:

cat original_file.txt | cut -d";" -f1 > new_file.txt

这将分隔由“;”分隔的字段中的每一行并选择第一个字段(-f1)。 您可以使用-f1-2,-f2 - 来访问带-f1,-f2,...或多个字段的其他字段。

答案 3 :(得分:0)

您可以通过'tr'命令将字符翻译成另一个字符。

cat input.txt | tr';' '\ n'&gt; output.txt的

\ n 是新行,如果您只需要标签,则应将其替换为 \ t