ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [20210301]第2行插入Y.txt

[20210301]第2行插入Y.txt

原创 Linux操作系统 作者:lfree 时间:2021-03-01 09:27:04 0 删除 编辑

[20210301]第2行插入Y.txt

--//前几天做控制文件序列号满的恢复,链接
--// http://blog.itpub.net/267265/viewspace-2759215/ => [20210225]控制文件序列号满的恢复.txt
--// 输出脚本要在第2行插入Y,我采用手工加入,使用bash shell如何完成呢.
--// 没事自己尝试看看.

1.方法1:
--//最容易想到的是sed:
$ seq 6 | xargs -IQ echo -e "assign dba Q,1  kcvfh.kcvfhhdr.kccfhcsq=0x00007777\nsum apply dba Q,1" | sed '1aY'
assign dba 1,1  kcvfh.kcvfhhdr.kccfhcsq=0x00007777
Y
sum apply dba 1,1
assign dba 2,1  kcvfh.kcvfhhdr.kccfhcsq=0x00007777
sum apply dba 2,1
assign dba 3,1  kcvfh.kcvfhhdr.kccfhcsq=0x00007777
sum apply dba 3,1
assign dba 4,1  kcvfh.kcvfhhdr.kccfhcsq=0x00007777
sum apply dba 4,1
assign dba 5,1  kcvfh.kcvfhhdr.kccfhcsq=0x00007777
sum apply dba 5,1
assign dba 6,1  kcvfh.kcvfhhdr.kccfhcsq=0x00007777
sum apply dba 6,1

2.方法2:
--//awk,我最不熟悉的就是awk,平时我就不大喜欢用它,语法也不是很熟.
$ seq 5| awk "{if (NR==2) print \"Y\n\" \$0 ;else  print \$0 }"
1
Y
2
3
4
5
--//以上是windows下使用cygwin的写法有点变态.在linux下尝试看看.
$ seq 5| awk '{if (NR==2) print "Y\n" $0 ;else  print $0 }'
1
Y
2
3
4
5

3.方法3:
--//paste+sed:
$ paste -d"\n" <(seq 5 ) <(echo Y) |sed '/^\s*$/d'
1
Y
2
3
4
5

4.方法3:
--//vim可行吗?尝试看看.
$ seq 5 | vim - -esbnN -c '1s/^.*$/&^MY/' -c 'w!/dev/stderr|q!' 2>&1 >/dev/null
1
Y
2
3
4
5
--//应该有更好的写法:我参考链接:https://blog.robertelder.org/use-vim-inside-a-unix-pipe-like-sed-or-awk/
--//想想我虽然经常使用vim,但是并不熟悉ex一些命令.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-2760137/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    2894
  • 访问量
    6673000