我有包含数据的文本文件,如下所示

  1  0.751E-04  0.000E+00  0.113E-04  0.735E-05 -0.530E-05  0.410E-06 -0.805E-06      +
    -0.442E-06  0.476E-06 -0.252E-06
  2  0.792E-04  0.000E+00  0.134E-04  0.680E-05 -0.504E-05  0.435E-06 -0.895E-06      +
    -0.216E-06  0.149E-06 -0.133E-06

我想将+之后的行移到上面或当前行,如下所示

  1  0.751E-04  0.000E+00  0.113E-04  0.735E-05 -0.530E-05  0.410E-06 -0.805E-06 -0.442E-06  0.476E-06 -0.252E-06
  2  0.792E-04  0.000E+00  0.134E-04  0.680E-05 -0.504E-05  0.435E-06 -0.895E-06 -0.216E-06  0.149E-06 -0.133E-06

我使用下面的代码try 了awk

awk '{if($0 ~ /+/) print $0; getline; print}' A1.txt

使用此代码,我得到的输出与输入相同,行/行没有上移.

我也试过了

 tr '      +' ' ' < A1.txt >> ddg.txt

但得到的结果与不带+号的输出相同.

我可以共享示例输入文件,但我在这里看不到选项.我可以把它上传到Google Drive并分享链接吗?这会不会违反论坛的规定?

推荐答案

With :

awk 'BEGIN{RS=""}{gsub(/ +\+\n +/, " ")}1' file

With GNU :

sed -z 's/ \++\n \+/ /g' file

With :

perl -0777 -pe 's/\s+\+\n\s+/ /g' file
  1  0.751E-04  0.000E+00  0.113E-04  0.735E-05 -0.530E-05  0.410E-06 -0.805E-06 -0.442E-06  0.476E-06 -0.252E-06
  2  0.792E-04  0.000E+00  0.134E-04  0.680E-05 -0.504E-05  0.435E-06 -0.895E-06 -0.216E-06  0.149E-06 -0.133E-06

Linux相关问答推荐

Bash shell 脚本未通过 TRUE 条件

2023 年如何在现代 Linux 上安装 Firebird SQL 版本 3 或 4?

如果列小于 X,linux 合并行

inotifywait 可以说文件在另一个进程可以访问之前已关闭吗?

linux shell获取多文件交集

在 bash 中获取目录或文件的基本名称的快速且正确的方法

从 curl 命令输出中获取值

docker rm 命令在具有相同操作系统的不同机器上返回不同的状态码

如何使用awk或其他方法提取双引号中的子字符串?

如何忽略 diff 命令中的一些差异?

如何使用 gcc 编译为程序集

如何比较两个压缩包的内容

从 shell 将多个 .sql 转储文件导入 mysql 数据库

通过 Linux FrameBuffer 将像素绘制到屏幕上

如何在非阻塞套接字上处理 OpenSSL SSL_ERROR_WANT_READ / WANT_WRITE

如何在 Linux 中查找所有以 .rb 结尾的文件?

Linux 配置/制作,--prefix?

如何仅打印 hexdump 中的十六进制值,而不打印行号或 ASCII 表?

JAVA_HOME 和 PATH 已设置,但 java -version 仍显示旧版本

在类 Unix 系统中上次运行的 cron 作业(job)的详细信息?