用''封装输出

时间:2019-03-15 11:47:39

标签: awk

当前输出:

'31123456787
31123456788
31123456789

必需的输出:

'31123456787'
'31123456788'
'31123456789'

当前使用的代码:

variable=`awk -F, '{OFS=",";print $1,$2}' /app/isc/Test/archive/data/Final_Account_Status_Check.csv | tr -d ',' `
echo "'$variable'" >> /app/isc/Test/archive/data/Final_Account_Status_Check.txt

2 个答案:

答案 0 :(得分:2)

编辑(改进OP的尝试): :看到OP的代码试图通过改进OP的代码来改进并通过单个awk命令本身完成任务。 / p>

awk -v s1="'" 'BEGIN{FS=","} {print s1 $1,$2 s1}'  /app/isc/Test/archive/data/Final_Account_Status_Check.csv > /app/isc/Test/archive/data/Final_Account_Status_Check.txt

使用OP的代码进行的改进:

  • 从OP的第一个命令中删除了OFS=","tr部分,因为后来OP从td中删除了它们,所以没有意义。
  • 声明一个awk变量s1,其值为',稍后我们将添加到输出中。
  • s1之前和$1之后添加了$2,以根据OP的要求以'bla bla bla'的形式输出。


根据OP的要求的代码:

请您尝试以下操作(此解决方案假定我们需要读取Input_file才能获得OP的预期输出)。

awk -v s1="'" '{print s1 $0 s1}' Input_file


由于您没有显示完整的需求或输入或预期输出的样本,因此通过查看您的尝试,您似乎可以打印变量的值,然后将其传递给awk

echo "$your_variable" | awk -v s1="'" '{print s1 $0 s1}'

答案 1 :(得分:0)

因此,您想在每行的开头和结尾添加'

echo "$variable" | sed "s/^/'/; s/$/'/"