タブで区切られたファイルの特定の列で、「CC」を「C」に、「AA」をA」に変更したいと思います(awk
おそらく。
答え1
awk -F'\t' -vOFS='\t' '{ gsub("CC", "C", $1) ; gsub("AA", "A", $1) ; print }'
$1
変更したい列に置き換えます。
答え2
アクセス権がないがgsub()
アクセス権がある場合は、split()
次のように同等の項目を作成できます。
与えられた入力
AA AA CC CC AA CC
次のawk
スクリプト
BEGIN {
OFS = "\t";
split("1 3 5", Fields);
split("A C", Replacements);
}
{
for (i in Fields) {
for (j in Replacements) {
Replace = Replacements[j];
sub(Replace Replace, Replace, $Fields[i]);
}
}
print;
}
フィールド 1、3、5 の目的の結果を生成します。
A AA C CC A CC
そうでなくても、ブロック単位でハードコーディングして配列しsplit()
たい場合は可能です。Fields
Replacements
BEGIN
答え3
フィールド内を検索して置換するには、次のコマンドを使用します。
sed 's/whatyouwanttofind/whatyouwanttoreplace/field#'
つまり、あなたはこれに答えます:
$echo -e "1are,2are,3are,4are\n5are,6are,7are,8are"
1are,2are,3are,4are
5are,6are,7are,8are
あなたはこれをしたい
$echo -e "1are,2are,3are,4are\n5are,6are,7are,8are" | sed 's/are/arrr/2'
1are,2**arrr**,3are,4are
5are,6**arrr**,7are,8are