当前位置:  技术问答>linux和unix

shell如何实现这种高难度的合成

    来源: 互联网  发布时间:2015-09-09

    本文导语:  shell如何实现这种高难度的合成 文件如下: [2005/02/18 13:44:23 B0099S05] SELECT a, || b, || from dual; [2005/02/18 13:44:23 B0099S05] UPDATE MATERIAL T  || SET T.CDELDATE = '20050216'  [2005/02/18 13:44:23 B0099S05] DELETE * from MATERIAL; aaaa...

shell如何实现这种高难度的合成

文件如下:
[2005/02/18 13:44:23 B0099S05] SELECT a,
|| b,
|| from dual;
[2005/02/18 13:44:23 B0099S05] UPDATE MATERIAL T 
|| SET T.CDELDATE = '20050216' 
[2005/02/18 13:44:23 B0099S05] DELETE * from MATERIAL;
aaaaaaaaaaa
bbbbbbbbbb
PL/SQL over!。

要求:
1:将文件中所有含有B0099S05的行,的下一行含有||的去掉||合成一行,生成另一个
 文件; 即新文件应该如下:
[2005/02/18 13:44:23 B0099S05] SELECT a, b, from dual;
[2005/02/18 13:44:23 B0099S05] UPDATE MATERIAL T SET T.CDELDATE = '20050216'
[2005/02/18 13:44:23 B0099S05] DELETE * from MATERIAL;

请教大虾阿:
谢谢!

|
# cat file | sed -e :a -e '$!N;s/n||/ /;ta' -e 'P;D'

|
试试看,这个perl版的中不?

-------------------------
#!/usr/bin/perl

$src = $ARGV[0];
$dest = $ARGV[1];

open IN,$src;
open OUT,">$dest";
while() {
s/(r)?n$//;
s/^||//;
s/^[/n/;  # Linux version
print OUT $_;
}
close OUT;
close IN;
-------------------------
思路:
 1.去回车 2. 去 "||" 3. 加回车
用法:
另存为  conv.pl
$ perl conv.pl yourOrgFile yourOutputFile

最近比较闲,呵呵 ...

|
相同的做法,
用shell 的sed也应该能做出来。
可,那个俺不会。

|
有sed2perl or awk2perl,不知道有没有perl2awk 或是 perl2sed

|
写了个shell脚本.

#!/bin/sh
# runsql.sh

sed '/^[^[||]/d' rec.txt >out1.txt

while read LINE
do
case $LINE in
[*) echo -n "$LINE" >>out2.txt
;;
|*) echo -n "$LINE" >>out2.txt
;;
esac
done out.txt
rm -f out1.txt out2.txt
 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问什么是shell编程?一般都用shell编程实现什么?
  • 如何用c shell实现让一个a.exe在后台运行,请给出shell代码
  • 编一个模拟shell实现的程序,怎么实现输入输出重定向?谢谢
  • 用shell调用api接口能实现吗?100分就是你的了
  • 请问shell能实现注册的功能吗?
  • 用shell命令来实现改变文件的icon
  • Linux shell 可以实现连接数据库吗?
  • bash shell 如何实现删除文件中的各行字符呢?
  • 如何用shell实现向文件删除或添加一行信息
  • 请教一下,如何用shell 编程实现删除超过一定时间以前的文件?
  • 如何用shell程序实现一个监控程序(内详)
  • 用shell实现scp,如何将密码传给相应的指令?
  • 如何编程实现(不用shell命令)修改文件的时间
  • 急急急!!!!!!用B shell如何实现截取变量的子串?
  • 用SHELL脚本实现?
  • 如何使用shell文件实现linux环境下的挂载功能,具体代码!!
  • shell 读取xml的实现
  • shell脚本如何实现下面的功能
  • UNIX SHELL实现su用户切换功能
  • 怎么在每行数据后加 一个 词 (shell 实现)
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • linux bash shell命令:grep文本搜索工具简介
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • php iis7站长之家
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • shell变量和子shell的问题请教
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3