[英]Unix Concat multiple lines between specific keywords into a single line
[英]how to combine multiple lines into single line in unix?
<first_load_time>29-09-2020</first_load_time>
<sql_id>qqkbwi76786</sql_id>
<first_load_time>01-01-2020</first_load_time>
<sql_id>abcdef12345</sql_id>
以下格式的文本文件
<first_load_time>29-09-2020</first_load_time><sql_id>qqkbwi76786</sql_id
<first_load_time>01-01-2020</first_load_time><sql_id>abcdef12345</sql_id>
笔记:-
给定您在某个文件(例如 input.txt)中的输入,您可以在 sed 中找到任何空行(在正则表达式中^$
表示开始后紧跟行尾)并删除它们(使用d
),然后发送到 output 文件说 putput 。文本:
sed '/^$/ d' < input.txt > output.txt
您可以尝试以下 awk 命令:
awk '$1 ~ "<first" {a=$0;next;} $1 ~ "<sql" {print a $0}' file.txt
此命令将检查输入行中的模式“<first”。 如果模式匹配,那么它将将该行存储在一个变量中并移至下一行。 如果下一行具有模式“<sql”,那么它将打印存储在变量 a 中的行和以 <sql 开头的当前行。
由于这个命令是匹配模式,它会自动忽略空行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.