sed 每第二行打印一次

sed 每第二行打印一次

我有以下文件:main.txt

/F/FID/FID/000001/0/20180215//1/2/
/F/FID/FID/000002/0/20180215//1/2/
/F/FID/FID/000003/0/20180215//1/2/
/F/FID/FID/000004/0/20180215//1/2/
/F/FID/FID/000005/0/20180215//1/2/
/F/FID/FID/000006/0/20180215//1/2/

我喜欢使用 sed 将每两行打印到一个新文件中:

文件1.txt

/F/FID/FID/000001/0/20180215//1/2/
/F/FID/FID/000002/0/20180215//1/2/

文件2.txt

/F/FID/FID/000003/0/20180215//1/2/
/F/FID/FID/000004/0/20180215//1/2/

文件3.txt

/F/FID/FID/000005/0/20180215//1/2/
/F/FID/FID/000006/0/20180215//1/2/

答案1

不容易sed,但是

awk 'NR%2 {fname = sprintf("file%d.txt", ++n)} {print > fname}' main.txt

给予

head file*.txt
==> file1.txt <==
/F/FID/FID/000001/0/20180215//1/2/
/F/FID/FID/000002/0/20180215//1/2/

==> file2.txt <==
/F/FID/FID/000003/0/20180215//1/2/
/F/FID/FID/000004/0/20180215//1/2/

==> file3.txt <==
/F/FID/FID/000005/0/20180215//1/2/
/F/FID/FID/000006/0/20180215//1/2/

或者,

split --lines=2 --numeric-suffixes=1 --suffix-length=1 --additional-suffix='.txt' main.txt 'file'

(其中一些选项可能特定于 GNU 版本split)。

相关内容