为每个NR附加变量和增量变量

时间:2013-05-01 01:18:22

标签: awk

我想将一个网站列表变成一些可怕的java代码,以便我可以在selenium中运行它。

  http://google.com
  http://facebook.com

  public void goToWebsite1() {driver = new FirefoxDriver();driver.get("http://google.com");driver.quit();
  public void goToWebsite2() {driver = new FirefoxDriver();driver.get("http://facebook.com");driver.quit();

看到我完全无能,我设法这样做:

  sed 's/$/");driver.quit();/g' homepage2

  sed 's/^/() {driver = new FirefoxDriver();driver.get("/g'

  prepend and increment counter

  sed 's/^/public void goToWebsite/g'

遗憾的是,我不知道如何在每一行上添加和增加一个计数器。我敢打赌,有一个awk一个班轮。我想象的是:

    awk {x=1} {NR = gsub/^/x} {x=x+1}

2 个答案:

答案 0 :(得分:3)

最好不要修改NR。这是快速的方法:

awk '{ print "public void goToWebsite" NR "() {driver = new FirefoxDriver();driver.get(\"" $0 "\");driver.quit();" }' file

结果:

public void goToWebsite1() {driver = new FirefoxDriver();driver.get("http://google.com");driver.quit();
public void goToWebsite2() {driver = new FirefoxDriver();driver.get("http://facebook.com");driver.quit();

答案 1 :(得分:1)

使用sed:

sed = input | 
  sed 'N;s!\(.*\)\n\(.*\)!public void goToWebsite\1() {driver = new FirefoxDriver();driver.get("\2");driver.quit();!'