删除awk中的换行符

时间:2015-03-23 16:40:10

标签: bash awk formatting

我正在尝试删除日期函数的新行字符,并让它包含空格。我用这个保存变量:

current_date=$(date "+%m/%d/ AT %y%H:%M:%S" )

我可以通过echo $ current_date看到这是我需要的正确格式。 但是,当我需要使用此变量时,它不会按照我希望的方式运行。

awk '(++n==47) {print "1\nstring \nblah '$current_date' blah 2;     n=0} (/blah/) {n=0} {print}' input file > output file 

除非另有说明,否则我需要将日期保留在当前文本行中并继续不使用换行符。

提前致谢。

1 个答案:

答案 0 :(得分:3)

您可以像以前一样将变量插入到命令字符串中,而不是尝试将其传递给awk:

awk -v date="$(date "+%m/%d/ AT %y%H:%M:%S")" '# your awk one-liner here' input_file

然后,您可以在脚本中使用变量date作为awk变量:

print "1\nstring \nblah " date " blah 2";

顺便说一下,看起来您的原始print声明已被破坏,因为它的末尾缺少双引号。