행의 일부를 추출하고 정렬합니다.

행의 일부를 추출하고 정렬합니다.

내 출력은 다음과 유사합니다.

[test output] my name is bob this is a random string
[test output] my name is jim this is a randong string2
[test output] my name is bob this is a randong string3
[test output] my name is alice this is a randong string4
[test output] my name is bob this is a randong string5
[test output] my name is dave this is a randong string6
[test output] my name is jim this is a randong string7
[test output] my name is jim this is a randong string8

예상 출력:

my name is bob
my name is jim
my name is alice
my name is dave

위의 내용을 이름당 한 줄씩 출력하려고 했습니다. 이름 뒤에는 어떤 문자열도 포함될 수 있습니다. 어떤 순서로 나타나는지는 중요하지 않습니다.

누구든지 도와줄 수 있나요?

답변1

그리고 awk:

awk '{ s = $3" "$4" "$5" "$6 };!(s in a){a[s];print s}' <file

답변2

출력 정렬이 마음에 들지 않으면 다음을 cut사용하여 수행 할 수도 있습니다 sort.

cut -d' ' -f3-6 file | sort -u
  • -dat은 cut구분 기호를 지정합니다. 귀하의 경우에는 공백입니다.
  • -fat은 cut출력할 필드를 지정합니다. 귀하의 경우 3에서 6까지의 모든 필드가 필요합니다.
  • -u출력 시 sort같은 라인의 첫 번째 라인만 출력됩니다.

답변3

당신은 sed또한 사용할 수 있습니다

sed -e 's/^.*] //g' -e 's/ this.*$'//g file | sort -u

관련 정보