我有一个包含 826,838 行的文本文件。文本文件如下所示(抱歉,无法让图像上传器工作(。
我正在使用 sed (sed -n '2p;$p'( 打印第二行和最后一行,但无法弄清楚如何将这些行放入范围格式。
电流输出:
1 3008.00 7380.00 497724.00 3158482.00 497724.00 3158482.00
826838 4744.00 7409.00 480729.00 3207718.00 480729.00 3207718.00
期望输出:
1-826838 3008.00-4744.00 7380.00-7409.00 497724.00-480729.00 3158482.00-3207718.00 497724.00-480729.00 3158482.00-3207718.00
感谢您的帮助!
这可能对你有用(GNU sed(:
sed -r '2H;$!d;H;x;:a;s/ns*(S+)s*(.*n)s*(S+s*)/1-3n2/;ta;P;d' file
将第 2 行和最后一行存储在保留空间 (HS( 中。在最后一行之后,交换到 HS,然后重复将第二行和第三行的第一个字段移动到第一行。最后只打印第一行。
使用单个awk表达式(将获得所需的行并创建所需的范围(:
awk 'NR==2{ split($0,a) }END{ for(i=1;i<=NF;i++) printf("%st",a[i]"-"$i); print "" }' file
输出:
1-826838 3008.00-4744.00 7380.00-7409.00 497724.00-480729.00 3158482.00-3207718.00 497724.00-480729.00 3158482.00-3207718.00