내 출력은 다음과 유사합니다.
[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
-d
at은cut
구분 기호를 지정합니다. 귀하의 경우에는 공백입니다.-f
at은cut
출력할 필드를 지정합니다. 귀하의 경우 3에서 6까지의 모든 필드가 필요합니다.-u
출력 시sort
같은 라인의 첫 번째 라인만 출력됩니다.
답변3
당신은 sed
또한 사용할 수 있습니다
sed -e 's/^.*] //g' -e 's/ this.*$'//g file | sort -u