2

Web サイトのリストを恐ろしい 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}
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 に答える