2

我想把一个网站列表变成一些可怕的 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 one 班轮。我想像:

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

2 回答 2

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();
于 2013-05-01T01:36:18.363 回答
1

使用 sed:

sed = input | 
  sed 'N;s!\(.*\)\n\(.*\)!public void goToWebsite\1() {driver = new FirefoxDriver();driver.get("\2");driver.quit();!'
于 2013-05-01T01:38:50.193 回答