首页 > 解决方案 > 在 Unix 中将文本向上移动一行

问题描述

我有一个文本文件,其中包含一组类似于以下作业的作业。我想做的是将每项工作的外观移动JOB_NAME到线上delete_job:

delete_job: JOB_NAME

我尝试了很多方法,但无法让它工作!有什么想法可以实现吗?

delete_job:
JOB_NAME
job_type: BOX
description: "*******"
date_conditions: 0
owner: *******
alarm_if_fail: 1

标签: unixawksedgrep

解决方案


EDIT2:根据 ED 先生的建议,现在也添加 1 个解决方案。

awk 'val{print val OFS $0;val="";next}/delete_job/||/update_job/||/insert_job/{val=$0;next} 1' Input_file

编辑:正如 OP 所说,许多字符串可以在那里进行搜索,因此现在相应地进行更改。

awk '/delete_job/||/update_job/||/insert_job/{val=$0;getline;print val OFS $0;next} 1' Input_file

您能否尝试关注并让我知道这是否对您有帮助。

awk '/delete_job/{val=$0;getline;print val OFS $0;next} 1'  Input_file

推荐阅读