teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

コード編集

2020/02/14 00:23

投稿

s-o
s-o

スコア6

title CHANGED
File without changes
body CHANGED
@@ -31,6 +31,7 @@
31
31
  ```
32
32
 
33
33
  ### 実装済の冗長ソースコード
34
+ awkの外側の外部ファイル参照によるwhile read文で繰り返し処理を行っている。
34
35
  ```bash
35
36
  while read key regex val1 val2 ; do
36
37
  cat ./input.txt | awk '
@@ -42,7 +43,7 @@
42
43
  NR>1{
43
44
  if(match($2, /'"$regex"'/)){
44
45
  print $0,substr($2, RSTART + '"$val1"', RLENGTH - '"$val2"')
45
- }
46
+ }else{print $0,"0"}
46
47
  }
47
48
  '>./out.txt #同名の./input.txtだと処理がうまくいかない(空白のテキストができる)
48
49
  mv ./out.txt ./input.txt #処理に時間がかかるがout.txtとして1度出力し、mvで名前を変更した。

3

コードの一部修正

2020/02/14 00:23

投稿

s-o
s-o

スコア6

title CHANGED
File without changes
body CHANGED
@@ -40,7 +40,7 @@
40
40
  }
41
41
  NR==1{$0,'"$key"'}
42
42
  NR>1{
43
- if(match($2, /'"$regrex"'/)){
43
+ if(match($2, /'"$regex"'/)){
44
44
  print $0,substr($2, RSTART + '"$val1"', RLENGTH - '"$val2"')
45
45
  }
46
46
  }

2

コードの一部修正

2020/02/13 14:15

投稿

s-o
s-o

スコア6

title CHANGED
File without changes
body CHANGED
@@ -40,7 +40,7 @@
40
40
  }
41
41
  NR==1{$0,'"$key"'}
42
42
  NR>1{
43
- if(match($8, /'"$regrex"'/)){
43
+ if(match($2, /'"$regrex"'/)){
44
44
  print $0,substr($2, RSTART + '"$val1"', RLENGTH - '"$val2"')
45
45
  }
46
46
  }

1

コード追加(awkのNR==1の処理)

2020/02/13 13:22

投稿

s-o
s-o

スコア6

title CHANGED
File without changes
body CHANGED
@@ -38,6 +38,7 @@
38
38
  FS = "\t"
39
39
  OFS = "\t"
40
40
  }
41
+ NR==1{$0,'"$key"'}
41
42
  NR>1{
42
43
  if(match($8, /'"$regrex"'/)){
43
44
  print $0,substr($2, RSTART + '"$val1"', RLENGTH - '"$val2"')