linux sed awk命令结合匹配符 根据第二行内容,替换第一行内容 可以写成shell脚本 30
内容为文本文件第一行Date1,Date2,MyCode第二行2015/9/1,2015/9/3017:10:01,helloworld1第三行2015/9/1,2015...
内容为文本文件
第一行 Date1,Date2,MyCode
第二行 2015/9/1,2015/9/30 17:10:01,helloworld1
第三行 2015/9/1,2015/9/30 17:10:01,helloworld2
····
判断第二行的字符串,如果是2015/09/01格式 输出第一字段输出为Date1 "to_date(:Date1,'yyyy-mm-dd')"
如果是2015/09/30 17:10:01格式,则第二字段输出为Date2"to_date(:Date2,'yyyy-mm-dd,hh24:mi:ss')"
总之要实现输出Date1 "to_date(:Date1,'yyyy-mm-dd')",Date2"to_date(:Date2,'yyyy-mm-dd,hh24:mi:ss')".Mycode 这样的3个字段。
也就是说:一个excel导出为csv格式的文件被处理成文本,第一行是表的各字段,第二行至最后为其数据。我想根据第二行的各分段字符串的判断,实现对第一行对应分段的字符串的更改/替换。 展开
第一行 Date1,Date2,MyCode
第二行 2015/9/1,2015/9/30 17:10:01,helloworld1
第三行 2015/9/1,2015/9/30 17:10:01,helloworld2
····
判断第二行的字符串,如果是2015/09/01格式 输出第一字段输出为Date1 "to_date(:Date1,'yyyy-mm-dd')"
如果是2015/09/30 17:10:01格式,则第二字段输出为Date2"to_date(:Date2,'yyyy-mm-dd,hh24:mi:ss')"
总之要实现输出Date1 "to_date(:Date1,'yyyy-mm-dd')",Date2"to_date(:Date2,'yyyy-mm-dd,hh24:mi:ss')".Mycode 这样的3个字段。
也就是说:一个excel导出为csv格式的文件被处理成文本,第一行是表的各字段,第二行至最后为其数据。我想根据第二行的各分段字符串的判断,实现对第一行对应分段的字符串的更改/替换。 展开
2015-12-02
展开全部
我也给个思路吧 —— 用sed根据地址范围截取文件内容,用Here documents方法添加新的多行内容,然后重组文件。具体步骤如下:
1)截取test.xml文件起始行到<abcdef>行,保存到tmp文件;
2)将要添加的内容根据变量值展开,附加写入tmp文件;
3)截取test.xml文件</abcdef>行到结束行,附加写入tmp文件。
4)移动tmp文件覆盖test.xml文件。
代码:
12345678910111213#!/bin/sh$hostnames="host1,host2,host3 ..."$paragraph="many_strings"sed -n '1,/^<abcdef>/p' test.xml >tmpcat <<EOF >>tmpfor hname in `echo "$hostnames" | tr ',' ' '`do insert $hname insert $paragraphdoneEOFsed -n '/^<\/abcdef>/,$p' test.xml >>tmpmv tmp test.xml
注意:
1) for a in b 结构中,b集合里的内容必需要空格分隔。所以我这里做了转换,用tr命令将逗号分隔改为了空格分隔。
2)第二个EOF必需顶格写,前面不能有空格。
1)截取test.xml文件起始行到<abcdef>行,保存到tmp文件;
2)将要添加的内容根据变量值展开,附加写入tmp文件;
3)截取test.xml文件</abcdef>行到结束行,附加写入tmp文件。
4)移动tmp文件覆盖test.xml文件。
代码:
12345678910111213#!/bin/sh$hostnames="host1,host2,host3 ..."$paragraph="many_strings"sed -n '1,/^<abcdef>/p' test.xml >tmpcat <<EOF >>tmpfor hname in `echo "$hostnames" | tr ',' ' '`do insert $hname insert $paragraphdoneEOFsed -n '/^<\/abcdef>/,$p' test.xml >>tmpmv tmp test.xml
注意:
1) for a in b 结构中,b集合里的内容必需要空格分隔。所以我这里做了转换,用tr命令将逗号分隔改为了空格分隔。
2)第二个EOF必需顶格写,前面不能有空格。
TableDI
2024-07-18 广告
2024-07-18 广告
在Excel中,字符串匹配函数主要用于查找和定位特定字符串在文本中的位置或进行替换操作。常用的字符串匹配函数包括FIND、SEARCH、SUBSTITUTE和REPLACE等。FIND和SEARCH函数用于查找字符串的位置,而SUBSTIT...
点击进入详情页
本回答由TableDI提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询