sedまたはawkベースの実行コマンドを使用してn列からm列の空白行を置き換える方法

sedまたはawkベースの実行コマンドを使用してn列からm列の空白行を置き換える方法

次のCSVファイルがあります。

site1.com,aaa,bbb,ccc
site2.com,qqq
site3.com,rrr,uuu,ppp
site4.com,ddd,sss
site5.com,www,rrr,yyy,uuu
site6.com,,,,ttt,,,,
site7.com,,,uuuu,,,,ppp,
site8.com,,,,ggg,zzz

n〜m列(2〜4番目)が空の行(行)を置き換えたいです。私はコマンドを実行してこの行を操作したいと思います。たとえば、awkを使用すると、次のようになります。

awk -F, '$n-$m=="" {printf "%s,",$1 ; system(cmd1) ;}else {print $0}' test.csv
awk -F, '$2-$4=="" {printf "%s,",$1 ; system(cmd1) ;}else {print $0}' test.csv

次に、次のようにエクスポートしたいと思います(output1はcmd1コマンドの出力です)。

site1.com,aaa,bbb,ccc
site2.com,qqq
site3.com,rrr,uuu,ppp
site4.com,ddd,sss
site5.com,www,rrr,yyy,uuu
site6.com,output1
site7.com,,,uuuu,,,,ppp,
site8.com,output1

ベストアンサー1

3つの列だけが必要なので、次のようにできます。

awk -F, '{
            if($2=="" && $3==$2 && $3==$4){
                printf "%s,",$1; 
                system("CMD")
            }
            else{print}
          }' test.csv 

おすすめ記事