質問編集履歴
4
コード編集
    
        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
コードの一部修正
    
        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, /'"$ | 
| 43 | 
            +
                        if(match($2, /'"$regex"'/)){
         | 
| 44 44 | 
             
                            print $0,substr($2, RSTART + '"$val1"', RLENGTH - '"$val2"')
         | 
| 45 45 | 
             
                        }
         | 
| 46 46 | 
             
                    }
         | 
2
コードの一部修正
    
        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($ | 
| 43 | 
            +
                        if(match($2, /'"$regrex"'/)){
         | 
| 44 44 | 
             
                            print $0,substr($2, RSTART + '"$val1"', RLENGTH - '"$val2"')
         | 
| 45 45 | 
             
                        }
         | 
| 46 46 | 
             
                    }
         | 
1
コード追加(awkのNR==1の処理)
    
        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"')
         | 
