0

大きなcsvファイルの最初の列で、いくつかの文字列を他の文字列に置き換えたい(たとえば、「GG」を「GGX」、「GG」を「GGX」、「FG」を「FGX」など)。シェルコマンド。

私は私がのようなものが必要であることを知っています

big.csv shell_commands big.csv

でもawkやsedはわかりません

4

4 に答える 4

0

sedを使用すると、「GG」のすべてのインスタンスを「GGX」に置き換えると次のbig.csvようになります。

sed 's/^GG/GGX/g' big.csv >big_translated.csv

複数のパターンを置き換える必要がある場合は、セミコロンで区切ったsedで複数のreplaceコマンドを使用できます。

sed 's/^GG/GGX/g; s/^FG/FGX/g' big.csv >big_translated.csv

文字は行の^始まりを意味し、csvの最初のフィールドのみを編集するようにします。

于 2013-01-23T15:58:36.757 に答える
0
awk 'BEGIN{ r["GG"] = "GGX"; r["FG"] = "FGX" } 
    { for( k in r ) if( gsub( k, r[k], $1 ) break } 1' input-file

休憩は、複数の置換を防ぐためにあります。

于 2013-01-23T19:37:19.930 に答える
0

これを試してください(文字列が1回だけ出現する場合)

awk '{sub("GG","GGX",$0); sub("FG","FGX",$0); print}' temp.txt

于 2013-01-24T06:26:30.127 に答える
0

これはどう?

sed -i "s/^\(..\),/\1X,/" big.csv

または、そこにいくつかのスペースがある場合は、次のようにします。

sed -i "s/^\([^ ][^ ][ ]*\),/\1X,/" big.csv
于 2013-01-24T13:25:50.777 に答える