
Me gustaría reemplazar "CC" con "C" y "AA" con A" en una columna particular del archivo delimitado por tabulaciones (usando awk
probablemente).
Respuesta1
awk -F'\t' -vOFS='\t' '{ gsub("CC", "C", $1) ; gsub("AA", "A", $1) ; print }'
Reemplace $1
con la columna que desea modificar.
Respuesta2
Si no tenía acceso a gsub()
, pero sí lo tiene split()
, puede simplemente crear el equivalente de la siguiente manera:
Dada la entrada
AA AA CC CC AA CC
el siguiente awk
guión
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;
}
produciría los resultados deseados para los campos 1, 3 y 5:
A AA C CC A CC
Incluso sin él, split()
es posible si desea codificar las matrices Fields
y Replacements
en el BEGIN
bloque.
Respuesta3
Para buscar y reemplazar en un campo use este comando:
sed 's/whatyouwanttofind/whatyouwanttoreplace/field#'
es decir, te haces eco de esto:
$echo -e "1are,2are,3are,4are\n5are,6are,7are,8are"
1are,2are,3are,4are
5are,6are,7are,8are
y quieres hacer esto
$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