Sed错误:sed:-e表达式#1,char 12:`s'的未知选项

时间:2014-06-30 15:34:45

标签: linux bash text sed insert

我有一个包含大约500行信息​​的文本文件。 我想添加字符串

"https://otrs.confidential/index.pl?Action=AgentTicketZoom;TicketID=,"

到每一行的开头,跳过第一行

我已经提出了这个命令

sed -e "2s/^/https://otrs.confidential/index.pl?Action=AgentTicketZoom;TicketID=," C:\Users\Desktop\newfile.txt

但是当我运行命令

时,我收到一条错误消息

错误如下

sed: -e expression #1,char 12: unknown option to 's 

3 个答案:

答案 0 :(得分:1)

试试这个:

sed -e "2s@^@https://otrs.confidential/index.pl?Action=AgentTicketZoom;TicketID=,@"

示例:

echo -e "123\nabcdef" | sed -e "2s@^@https://otrs.confidential/index.pl?Action=AgentTicketZoom;TicketID=,@"
123
https://otrs.confidential/index.pl?Action=AgentTicketZoom;TicketID=,abcdef

说明:

我使用@代替/,因此您无需逃避它。

答案 1 :(得分:1)

如果搜索或替换模式包含分隔符,请使用其他分隔符。如果要替换多行,则需要指定范围(2,$)。例如:

 sed '2,$s~^~https://otrs.confidential/index.pl?Action=AgentTicketZoom;TicketID=~' C:\Users\Desktop\newfile.txt

答案 2 :(得分:0)

你必须逃避正斜杠。所以:http:\/\/etcetc\/etc,或者使用另一个分隔符(例如代替/使用#)