使用分隔符打印文件中的行



input.txt

hello
cruel
world

我想打印上面文件中的所有行,这样它们就添加了一个开始和结束字符串以及一个分隔符。

BEGIN='END='DELIMITER=|

预期输出:

'hello'|'cruel'|'world'

我会按照下面的方式为这个任务GNUAWK,让file.txt的内容是

hello
cruel
world

然后

awk '{printf "%s47%s47",(NR>1?"|":""),$0}' file.txt

给出输出

'hello'|'cruel'|'world'

说明:我使用printf,其中有2个位置要填充(表示为%s)和2个'(因为它们有特殊的含义,我们不能只使用',而是使用转义版本,即47),以及所谓的ternany运算符(条件?valueiftrue:valueiffalse)将|用于第一行之后的行(NR>1),将空字符串用于所有其他行以填充第一位和整行内容($0)排名第二。

(在gawk 4.2.1中测试)

相关内容

  • 没有找到相关文章

最新更新