将两行合并为一行并添加字符

时间:2015-04-03 17:59:42

标签: linux bash awk

我得到的输出如下:

TEXT
SOMETEXTELSE

我需要合并字符串并添加符号" R"他们之间喜欢:

TEXT R SOMETEXTELSE

我怎么做?

由于

更新。抱歉。这是命令

egrep -B1 ELLDB@сranium.*FAILED /var/log/alert.log | tail -2 

这是输出:

ERR-0045 Database is down for given SID. Can't perform backup.
2014-12-19 16:15:01 ELLDB@сranium Backuper:bkp status: FAILED 98456876

我需要输出:

ERR-0045 Database is down for given SID. Can't perform backup. R 2014-12-19 16:15:01 ELLDB@сranium Backuper:bkp status: FAILED 98456876

4 个答案:

答案 0 :(得分:0)

sed '$! s/.*/\0 R/' | paste -s -d " "

答案 1 :(得分:0)

假设您的输出是由seq 1 10生成的,然后可能是......

seq 1 10 | perl -pe 's/\n/ R /' | perl -pe 's/$/\n/'

答案 2 :(得分:0)

使用awk:

awk 'NR==1 {printf "%s R ", $0} NR == 2'
说明:

awk逐行读取其输入,并将每一行与一系列pattern对中的每个pattern {action}进行比较。

NR == 1 {printf "%s R ", $0}

如果 当前行是第一行(NR == 1), 执行{ {1}},表示打印行(printf "%s R ", $0)的内容,后跟空格,后跟“R”,后跟空格(末尾没有换行符)。

$0

如果 当前行是第二行(NR == 2), 执行默认操作(因为未指定NR == 2中的操作),即打印行后跟换行的内容(它等同于写{...}NR == 2 {print})。< / p>

答案 3 :(得分:0)

单个sed命令可与N联接行替换一起使用。

sed -e 'N;s/\n/ R /'

例如:

$ printf "TEXT\nSOMETEXTELSE\n" | sed -e 'N;s/\n/ R /'
TEXT R SOMETEXTELSE