그래서 첫 번째 콜론까지 모든 것을 제거하려는 텍스트 파일이 있습니다. 예를 들어, 이것이 입력이라면
0000007ba9ec6950086ce79a8f3a389db4235830:9515rfsvk
000000da2a12da3fbe01a95bddb8ee183c62b94d:letmein2x
000000edf3179a1cf4c354471a897ab7f420bd52:heychudi:rbhai
000000f636f0d7cbc963a62f3a1bc87c9c985a04:cornetti
0000010a15f5b9315ef8e113f139fa413d1f2eb2:3648067PY128
그러면 이것이 출력되어야합니다
9515rfsvk
letmein2x
heychudi:rbhai
cornetti
3648067PY128
3행의 두 번째 콜론은 그대로 남아 있으며 각 행의 시작 부분부터 첫 번째 열까지의 위치만 제거해야 합니다.
grep이나 awk를 사용하여 이 작업을 수행하는 빠른 방법이 있습니까?
답변1
그리고cut
cut -d: -f2- file
-d
-f2-
두 번째 필드부터 마지막 필드까지 구분 기호와 평균을 설정합니다.
답변2
sed를 사용하세요:
sed 's/[^:]*://' input.txt
즉, 0개 이상의 콜론이 아닌 문자와 그 뒤에 콜론이 오는 순서를 일치시키고 아무 것도 대체하지 않습니다.
답변3
이는 grep
(PCRE)와 함께 사용할 수 있습니다.
grep -Po "(?<=:).*" file
산출:
9515rfsvk
letmein2x
heychudi:rbhai
cornetti
3648067PY128
답변4
첫 번째 항목이 :
항상 파일의 41번째 위치에 있는 경우 다음을 사용할 수 있습니다.
colrm 1 41 <file
또는
cut -c42- file
열의 위치를 먼저 결정해야 하기 때문에 가장 편리한 옵션은 아니지만 최소한 구분 기호 없이도 작동합니다.