请给我一些建议。我需要 sed.exe 命令行实用程序(SED版本 for Windows ,版本4.1.5.4013)的工作解决方案。或者只是给我一个有效的UNIX解决方案,我会尝试为我的sed(适用于Win OS)进行调整。
如何在文本文件中的指定行之后添加新的(非常复杂,说实话)文本行?
我的输入文件包含以下文字(两行):
[Pagebar Item Popup Menu]
Feature !Private, Item, MI_IDM_MENU_PAGEBAR_NEW_PAGE = New Page, 1,,,"New item menu"
我需要在第一行和第二行之间插入以下行(上面提到):
Item, "Load tab" = Enable Javascript,,,,"Remove from Start Page.rtl" & Enable plugins & Enable display images & Reload
是否可以替换(但不是每当sed命令运行时添加新行!)现有的第一行有两行(替换行+新添加的字符串)。或者,举例来说,检查" 项目,"加载标签" ..... " line已存在,避免插入新行的不需要的重复项?
我尝试了但是它没有工作:
sed -i "s/"\[Pagebar Item Popup Menu\]"/"\[Pagebar Item Popup Menu\]"\n"^Item,"Load tab"=Enable Javascript,,,,"Remove from Start Page\.rtl" & Enable plugins & Enable display images & Reload[ 0-9]\{1,\}[.,][0-9]\{3\}$/g" standard_menu.ini
答案 0 :(得分:1)
sed -e "/pattern/ {p;s/.*/line_to_insert/;}" input_file > output_file
当模式匹配时,sed将执行以下操作:
如果在没有-n的情况下调用sed,则会写出模式空间
如果使用-n调用sed,那么另外一个p;将需要命令:
sed -e "/pattern/ {p;s/.*/line_to_insert/;p;}" input_file > output_file
答案 1 :(得分:0)
对于windows下的unix解决方案,你考虑过cygwin吗?
其次,你的sed命令看起来有点时髦 - 你是否试过通过使用一组不同的引号围绕表达式来简化它?
最后,我想你可能想要cygwin,因为我不相信sed会做你想做的事。
此示例也使用grep
谢谢,
// P