使用bash shell脚本提取2个字符串之间的字符串

ass熊

我已经看到类似的问题,但是在这种情况下,所有解决方案似乎都不起作用。我有一个看起来像这样的文本文件

START-OF-FILE
RUNDATE=20140910
FIRMNAME=dl
FILETYPE=pc
REPLYFILENAME=TEST
DERIVED=yes
PROGRAMFLAG=oneshot
SECID=ISIN
SECMASTER=yes
PROGRAMNAME=getdata
START-OF-FIELDS
ISSUER
START-OF-DATA
US345370CN85|0|4|FORD MOTOR COMPANY|FORD MOTOR COMPANY| | |
US31679BAC46|0|4|FIFTH STREET FINANCE COR|FIFTH STREET FINANCE COR| | |
END-OF-DATA
END-OF-FILE

我正在尝试编写bash shell脚本,以仅提取“ START-OF-DATA”和“ END-OF-DATA”之间的文本(不包括这两者)。所以我正在寻找的输出看起来像这样

US345370CN85|0|4|FORD MOTOR COMPANY|FORD MOTOR COMPANY| | |
US31679BAC46|0|4|FIFTH STREET FINANCE COR|FIFTH STREET FINANCE COR| | |

到目前为止,我编写的代码看起来像这样

while read line
do
    name=$line

    echo $name | sed -e 's/START-OF-DATA\(.*\)END-OF-DATA/\1/'

done < $1

并像这样从bash运行它

./script.sh file.txt

其中script.sh是我将外壳程序脚本另存为的文件,而file.txt是上面读取的文本文件。目前,它只是读取并回显整个文件。我猜它在我的语法中有些愚蠢。朝正确方向的任何指针将不胜感激。谢谢

阿努巴瓦

使用awk您可以执行以下操作:

awk '/START-OF-DATA/{p=1;next} /END-OF-DATA/{p=0;exit} p' file
US345370CN85|0|4|FORD MOTOR COMPANY|FORD MOTOR COMPANY| | |
US31679BAC46|0|4|FIFTH STREET FINANCE COR|FIFTH STREET FINANCE COR| | |

或使用sed

sed -n '/START-OF-DATA/,/END-OF-DATA/{/START-OF-DATA\|END-OF-DATA/!p;}' file
US345370CN85|0|4|FORD MOTOR COMPANY|FORD MOTOR COMPANY| | |
US31679BAC46|0|4|FIFTH STREET FINANCE COR|FIFTH STREET FINANCE COR| | |

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Shell脚本使用if else比较2个字符串

来自分类Dev

Shell脚本使用if else比较2个字符串

来自分类Dev

使用Shell脚本中的字符串操作删除字符串的最后一个字符

来自分类Dev

使用正则表达式提取2个字符之间的所有子字符串组合

来自分类Dev

如何使用VBScript获得2个字符之间的字符串

来自分类Dev

用ls结果替换bash中2个字符串之间的文本

来自分类Dev

在Bash中提取两个字符之间的字符串

来自分类Dev

如何获取bash脚本中两个字符之间的字符串?

来自分类Dev

如何仅使用Oracle SQL返回2个字符串之间的差异

来自分类Dev

如何使用RegEx将字符串分成2个字符串?

来自分类Dev

使用linq查找2个字符串列表之间是否存在公共字符串

来自分类Dev

使用Zip组合3个字符串而不是2个字符串

来自分类Dev

使用bash脚本如何检查一个字符串是否在另一个字符串内

来自分类Dev

使用AppleScript从文本文档中提取两个字符串之间的字符串

来自分类Dev

使用AppleScript从文本文档中提取两个字符串之间的字符串

来自分类Dev

使用正则表达式提取两个字符串之间的字符串

来自分类Dev

在 Perl 中使用 Regexp 在两个字符串之间提取字符串

来自分类Dev

在bash脚本中根据模式提取多个字符串

来自分类Dev

提取两个字符串之间的文本bash sed排除

来自分类Dev

如何使用递归来混合2个字符串并以1个“隔行”字符串返回两个字符串?

来自分类Dev

如何使用awk提取整个字符串?

来自分类Dev

使用awk从另一个字符串中提取字符串

来自分类Dev

使用grep从另一个字符串中提取字符串

来自分类Dev

对shell脚本中使用的每个字符串字母执行操作

来自分类Dev

如何在bash脚本中查找包含三个字符串的文件?

来自分类Dev

使用Javascript获取两个字符串之间的字符串数组

来自分类Dev

使用PHP查找两个字符串之间映射的字符串

来自分类Dev

使用Javascript获取两个字符串之间的字符串数组

来自分类Dev

使用子字符串获取两个字符串之间的数字

Related 相关文章

  1. 1

    Shell脚本使用if else比较2个字符串

  2. 2

    Shell脚本使用if else比较2个字符串

  3. 3

    使用Shell脚本中的字符串操作删除字符串的最后一个字符

  4. 4

    使用正则表达式提取2个字符之间的所有子字符串组合

  5. 5

    如何使用VBScript获得2个字符之间的字符串

  6. 6

    用ls结果替换bash中2个字符串之间的文本

  7. 7

    在Bash中提取两个字符之间的字符串

  8. 8

    如何获取bash脚本中两个字符之间的字符串?

  9. 9

    如何仅使用Oracle SQL返回2个字符串之间的差异

  10. 10

    如何使用RegEx将字符串分成2个字符串?

  11. 11

    使用linq查找2个字符串列表之间是否存在公共字符串

  12. 12

    使用Zip组合3个字符串而不是2个字符串

  13. 13

    使用bash脚本如何检查一个字符串是否在另一个字符串内

  14. 14

    使用AppleScript从文本文档中提取两个字符串之间的字符串

  15. 15

    使用AppleScript从文本文档中提取两个字符串之间的字符串

  16. 16

    使用正则表达式提取两个字符串之间的字符串

  17. 17

    在 Perl 中使用 Regexp 在两个字符串之间提取字符串

  18. 18

    在bash脚本中根据模式提取多个字符串

  19. 19

    提取两个字符串之间的文本bash sed排除

  20. 20

    如何使用递归来混合2个字符串并以1个“隔行”字符串返回两个字符串?

  21. 21

    如何使用awk提取整个字符串?

  22. 22

    使用awk从另一个字符串中提取字符串

  23. 23

    使用grep从另一个字符串中提取字符串

  24. 24

    对shell脚本中使用的每个字符串字母执行操作

  25. 25

    如何在bash脚本中查找包含三个字符串的文件?

  26. 26

    使用Javascript获取两个字符串之间的字符串数组

  27. 27

    使用PHP查找两个字符串之间映射的字符串

  28. 28

    使用Javascript获取两个字符串之间的字符串数组

  29. 29

    使用子字符串获取两个字符串之间的数字

热门标签

归档