我有一个.txt
可以这样举例:
NAME | CODE
name1 | 001
name2 | 001
name3 | 002
name4 | 003
name5 | 003
name6 | 003
Run Code Online (Sandbox Code Playgroud)
我需要编写一个脚本来根据CODE
列拆分这个文件,所以在这种情况下我会得到这个:
file 1:
NAME | CODE
name1 | 001
name2 | 001
file 2:
NAME | CODE
name3 | 002
file 3:
NAME | CODE
name4 | 003
name5 | 003
name6 | 003
Run Code Online (Sandbox Code Playgroud)
根据一些研究,使用 awk 会起作用:
$ awk -F, '{print > $2".txt"}' inputfile
Run Code Online (Sandbox Code Playgroud)
问题是,我还需要将标题包含在第一行中,并且我需要不同的文件名。相反的001.txt
,例如,我需要类似的文件名FILE_$FILENAME_IDK.txt
。
我需要将一个.txt
文件拆分成更小的文件,每个文件包含 100 行,包括标题。我不知道这是否相关,但原始文件是这样分隔的:
COLUMN1 | COLUMN2 | COLUMN3
1 | 2 | 3
4 | 5 | 6
7 | 8 | 9
Run Code Online (Sandbox Code Playgroud)
我需要从这个拆分生成的每个文件都有标题行。此外,他们需要被生成/移动到另一个目录,并按照一个名称模式,如file_01.txt
,file_02.txt
等
我使用以下几行将文件拆分为更小的部分:
split --line-bytes=100M -d $input $output/FILENAME
echo "$input was split into ??? 100MB files." >> demo.log
Run Code Online (Sandbox Code Playgroud)
之后,我需要在日志文件中写入从该拆分中生成了多少个较小的文件。有没有办法做到这一点?