2012-06-21 7 views
2

이 경우 문자는 "^"입니다.주어진 문자 뒤의 첫 번째 문자 제거

예를 들어 다음과 같은 형식의 3 열이 있습니다.

은에서 :

1 cccc cccc 
2 cta^<t cta^<tcc 
3 ccc cccc^* 
4 ^]a^*c^*c ^]a^*c^*c 

사람 :

1 cccc cccc 
2 ctat ctatcc 
3 ccc cccc 
4 acc acc 

나는이 나오지도 가능합니다 꽤 확신 해요.

답변

3

데모 입력/출력과 일치 시키려면 s/\^.//g이어야합니다. 설명과 일치 시키려면 s/\^./\^/g이 필요합니다. 즉, 다음 문자를 제거했지만 캐럿과 다음 문자를 모두 삭제하는 것으로 설명했습니다.

+1

예,이 완벽하게 작동 제공 (또 다른 유닉스 도구 대안으로 제공, 당신은 이미 sed 솔루션을 가지고). 그리고 네, 제 질문에 약간 잘못 생각했습니다. – mmot

+0

'^'는 대체 할 때 이스케이프 할 필요가 없습니다 :'s /\^./^/ g'은 괜찮습니다. –

2

sed 's/\^.//g'을 의미합니까? 그러면 ^ 및 그 다음 문자가 제거됩니다.

0

가 여기에 awk 솔루션입니다

awk '/^/{gsub(/\^./,"", $0)};1' data.txt 

1 cccc cccc 
2 ctat ctatcc 
3 ccc cccc 
4 acc acc 
관련 문제