1

で区切られた 2 つの列を含む .csv ファイルがあります,

ファイル.csv

word1,word2  
word3,word4  
word5,word6  
.  
.  
.  
.  
word1000,1001  

file.csv から新しいファイルを作成し、次のように sed コマンドを挿入したい:

私の新しいファイル

sed -e 's,word1,word2,gI' \  
   -e 's,word3,word4,gI' \  
   -e 's,word5,word6,gI' \  
    ....

sed コマンドを追加するスクリプトを作成するにはどうすればよいですか?

4

2 に答える 2

1

あなたの目標は、ファイルからカスタム置換を実行することです。bashこの場合、ジョブを実行するスクリプトを含むファイルは生成しませんが、ジョブを実行するsedスクリプトを生成します。

sed -e 's/^/s,/' -e 's/$/,gI/' file.csv > sed_script
sed -f sed_script <<< "word1"

sed_scriptbash のプロセス置換でファイルを使用することを回避することもできます。

sed -f <(sed -e 's/^/s,/' -e 's/$/,gI/' file.csv) <<< "word1"

アップデート:

スクリプトの生成を単純化すると、次のsedようになります。

sed -e 's/.*/s,&,gI/' file.csv > sed_script
sed -f sed_script <<< "word1"

sed -f <(sed -e 's/.*/s,&,gI/' file.csv) <<< "word1"
于 2012-04-08T13:37:51.610 に答える
1

sed各行を処理するために使用できます。

echo -n 'sed ' ; sed -e "s/^\(.*\)/-e 's,\1,gl'\ \\\/" file.csv

ご要望に応じて製作いたします

sed -e 's,word1,word2,gl' \
-e 's,word3,word4,gl' \
-e 's,word5,word6,gl' \
于 2012-04-08T13:05:46.213 に答える