터미널에서 마지막 ":" 앞의 모든 항목을 제거합니다.

터미널에서 마지막 ":" 앞의 모든 항목을 제거합니다.

병합된 파일에는 두 형식 모두 수백만 개의 행이 있습니다.

hash:salt:password
hash:password
hash:hash

내가 원하는 것은 비밀번호를 유지한 다음 중복 항목을 제거하고 중복 항목을 제거한 후 문자열이 포함된 모든 줄을 제거하는 것입니다.

샘플 파일:

695ecf9185cb3f1a415821ddd69cc6be:4e85e5:671014
695f1cc6765cac14c3478505c300ec9a::0d7b9438b5ea5d9b6883b43a656357d9775688
695f50345da6811b712ad3d08ac107cf::54dbf42fdafabe13e64c1eb7c7813e52b16188
695fe18dfdf073769841193ca98aaea3::405d98ab893b610144bf4645e6c132cb5eaf12
6960138fc7d1e2f9ec1c3df49ea72172::d7698e6198301e4a6df04d8b087a197a3d72f5
696073574b563bcfbf44a13a2848484a::9f3d22ab9249f9a05f9a7854f0ce2c6017cad2
6960a12e5357adbef3cb9df2d0ecd9c7::ca5fad391e11eb7e860bb1102528e77eb88474
6960c557ff9cc514771d3e6d855f3f8d::f3431013320c3864519b4c9269b524025bb6cf
69613e3ad5e001cdb1321012a554785e:c20954:214828
cc81a83d6bcd13b89519c45c7f5a1cfd:Refineryhotel2
696fb1bf9f806c772ac44882a28c2888:ca28a5:8561535
696fbe253ff887d5725d2438387b3bc1::60eb49f1f213fcc2f959edfec4feed89031747
696ffadc81d15371b88815c8394329a9:e5ad83:123hacker
6970031dffaac00607ce7663fa916686:4c4ba0:8109201
69706a943cc96169919476026a7de70c:ebd0af:0611314
69709651482c9e5c44c222aed4ece9aa::7a626fc07ccceb9b11c35c55941b2b5eb082c5

예상 출력:

671014
214828
Refineryhotel2
8561535
123hacker
8109201
0611314

답변1

터미널에서 마지막 ":" 이전의 모든 항목을 삭제합니다.

이 시도,

awk -F ':' '$2 != ""{print $NF}'  file

671014
214828
Refineryhotel2
8561535
123hacker
8109201
0611314
  • :두 번째 필드가 비어 있지 않으면 마지막 필드 뒤의 텍스트만 인쇄됩니다.

답변2

중복되지 않은 새로운 샘플 데이터를 사용해 보세요.

awk -F: '$2 != "" {print $3}' file
671014
214828

8561535
123hacker
8109201
0611314

"문자열 포함"이란 무엇을 의미합니까? 귀하의 샘플에서는 추론할 수 없습니다.

Refineryhotel2행이 아티팩트가 아닌 경우 (필드가 2개만 있는 유일한 행인 경우) 다음을 시도해 보세요.

awk -F: '$3 == "" {print $2; next}; $2 != "" {print $3} ' file
671014
214828
Refineryhotel2
8561535
123hacker
8109201
0611314

관련 정보