탭으로 구분된 파일의 특정 열에서 "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