当使用Sed更改此代码的信息格式时
sed -e "1,/\[option\]/i user id is:" -e '/^#/d' -e 's/~//g' /test/data/USER.FIDS
出来的信息如下.....
user id is:
qqq TTK
user id is:
jeff TTL RODGERS
user id is:
mark TP4 THOMSON
我需要的是让信息看起来像下面这样......
user id is: qqq TTK
user id is: jeff TTL RODGERS
user id is: mark TP4 THOMSON
答案 0 :(得分:3)
由于未提供示例输入,我正在创建自己的输入并仅关注需要更改的部分。使用 i
代替 s
命令,如下所示:
# 'i' command will insert content before matching lines
$ seq 5 | sed '/[135]/i user id is: '
user id is:
1
2
user id is:
3
4
user id is:
5
# with 's' command, you can add content to the same line
$ seq 5 | sed '/[135]/ s/^/user id is: /'
user id is: 1
2
user id is: 3
4
user id is: 5
答案 1 :(得分:2)
如果您对 awk
没问题,您可以尝试以下操作。由于没有提供示例数据,因此已使用显示命令的显示示例输出运行并测试了该数据。
your_command |
awk '
{
printf("%s",$0~/^user id/?(FNR>1?ORS:"")$0 OFS:$0)
}
END{
print ""
}
' | column -t
答案 2 :(得分:0)
看起来 /test/data/USER.FIDS
只包含名称,您可以使用
sed '/^#/d; s/^/user id is: /;s/~//g' /test/data/USER.FIDS