结合sed和awk命令

时间:2014-07-01 18:47:49

标签: regex bash shell awk sed

我正在尝试向其中包含大约500行的文件添加几列但是现在可以说我使用的是500行的一个文件。

我有两个命令。一个sed命令和一个awk命令

sed命令用于在每行的前面放置一个字符串。 (它很完美) 脚本示例:

sed -e "2,$s@^@https://confidential/index.pl?Action=AgentTicketZoom;TicketID=@" C:\Users\hd\Desktop\action.txt > C:\Users\hd\Desktop\test.txt

awk命令用于在每行的开头放置一个字符串,在sed字符串之前,并递增两个数字(例如下面的例子)。从技术上讲,sed命令将在第2列,awk命令将在第1列。

我会使用另一个sed命令,但是sed并不容易增加值。请帮忙!

脚本示例:

awk `{       
for (i=0; i<=10; i++)
{
printf "=HYPERLINK(B%d, C%d), \n, i"
}exit1
}`

awk代码应该显示类似

的内容
=HYPERLINK(B2,C2), https://confidential/index.pl?Action=AgentTicketZoom;TicketID=

=HYPERLINK(B3,C3), https://confidential/index.pl?Action=AgentTicketZoom;TicketID=

=HYPERLINK(B4,C4), https://confidential/index.pl?Action=AgentTicketZoom;TicketID=

=HYPERLINK(B5,C5), https://confidential/index.pl?Action=AgentTicketZoom;TicketID=

=HYPERLINK(B6,C6), https://confidential/index.pl?Action=AgentTicketZoom;TicketID=

1 个答案:

答案 0 :(得分:1)

如果您使用awk,则永远不需要sed,并且除了单行上的简单替换之外,您不应该使用sed。只需使用这个awk脚本:

awk 'NR>1{printf "=HYPERLINK(B%d,C%d), https://confidential/index.pl?Action=AgentTicketZoom;TicketID=%s\n", NR-1, NR-1, $0}' file