如果前一行有模式,我正在寻找awk/sed
命令将字符附加到当前行?
示例:
SELECT customer from Cust_tab WHERE forename = "XXX"
sname = "YYY"
postcode="ZZ ZZZ"
预期:
SELECT customer from Cust_tab WHERE forename = "XXX"
AND sname = "YYY"
AND postcode="ZZ ZZZ"
如果上一行/第一行有AND
,我想将=
添加到行首。试过做
sed 's/WHERE.*/& AND/g'
但这增加了行尾而没有开始,无法重复文件
中的第3行答案 0 :(得分:3)
编辑: 下面的代码可以帮助您在行有字符串SELECT
时设置标记,直到空行出现它会继续添加AND
字符串到所有行。
awk '/^SELECT.*=/{print;flag=1;next} !NF{flag=""} flag{print "AND ",$0}' Input_file
您的问题不是很明确,但根据您的陈述和展示的样本,请您试着跟随并告诉我这是否有帮助。
awk '/=/{print;getline;print "AND " $0}' Input_file
答案 1 :(得分:2)
awk
$ awk 'e{$0="AND " $0; e=0}1; /=/{e=1}' file