#!/bin/bash s='LIB SITE A LINUX X64 DC58 ROOM DC LOC 2.b LIB SITE A LINUX X64 DC58 ROOM DC LOC 2.b LIB SITE A OPENV X64 DC22 ROOM DC LOC 2.b LIB SITE A OPENV X64 DC22 ROOM DC LOC 2.b LIB SITE A OPENV X64 DC22 ROOM DC LOC 2.b LIB SITE A WIN9K X64 DC22 ROOM DC LOC 2.b LIB SITE A WIN9K X64 DC22 ROOM DC LOC 2.b LIB SITE A WIN9K X64 DC22 ROOM DC LOC 2.b LIB SITE A WIN9K X64 DC22 ROOM DC LOC 2.b LIB SITE B RHEL X64 DC10 ROOM DE LOC 3.ma LIB SITE B RHEL X64 DC10 ROOM DE LOC 3.ma LIB SITE B RHEL X64 DC10 ROOM DE LOC 3.ma LIB SITE B RHEL X64 DC10 ROOM DE LOC 3.ma LIB SITE B SUSE X64 DC10 ROOM DE LOC 3.ma LIB SITE B SUSE X64 DC10 ROOM DE LOC 3.ma LIB SITE B SUSE X64 DC10 ROOM DE LOC 3.ma LIB SITE B SUSE X64 DC10 ROOM DE LOC 3.ma LIB SITE A LINUX X64 DC41 ROOM DF LOC 5.p LIB SITE A LINUX X64 DC41 ROOM DF LOC 5.p LIB SITE A LINUX X64 DC41 ROOM DF LOC 5.p LIB SITE A LINUX X64 DC41 ROOM DF LOC 5.p LIB SITE A OPENV X64 DC41 ROOM DF LOC 5.p LIB SITE A OPENV X64 DC41 ROOM DF LOC 5.p LIB SITE A OPENV X64 DC41 ROOM DF LOC 5.p' awk 'BEGIN{print "OS_PLATFORM_VALID_BEGIN"} { if (!seen[$4]++ && NR>1) { print "OS_PLATFORM_VALID_END" ORS "OS_PLATFORM_VALID_BEGIN" } }1 ; END{print "OS_PLATFORM_VALID_END"}' <<< "$s"
Standard input is empty
OS_PLATFORM_VALID_BEGIN LIB SITE A LINUX X64 DC58 ROOM DC LOC 2.b LIB SITE A LINUX X64 DC58 ROOM DC LOC 2.b OS_PLATFORM_VALID_END OS_PLATFORM_VALID_BEGIN LIB SITE A OPENV X64 DC22 ROOM DC LOC 2.b LIB SITE A OPENV X64 DC22 ROOM DC LOC 2.b LIB SITE A OPENV X64 DC22 ROOM DC LOC 2.b OS_PLATFORM_VALID_END OS_PLATFORM_VALID_BEGIN LIB SITE A WIN9K X64 DC22 ROOM DC LOC 2.b LIB SITE A WIN9K X64 DC22 ROOM DC LOC 2.b LIB SITE A WIN9K X64 DC22 ROOM DC LOC 2.b LIB SITE A WIN9K X64 DC22 ROOM DC LOC 2.b OS_PLATFORM_VALID_END OS_PLATFORM_VALID_BEGIN LIB SITE B RHEL X64 DC10 ROOM DE LOC 3.ma LIB SITE B RHEL X64 DC10 ROOM DE LOC 3.ma LIB SITE B RHEL X64 DC10 ROOM DE LOC 3.ma LIB SITE B RHEL X64 DC10 ROOM DE LOC 3.ma OS_PLATFORM_VALID_END OS_PLATFORM_VALID_BEGIN LIB SITE B SUSE X64 DC10 ROOM DE LOC 3.ma LIB SITE B SUSE X64 DC10 ROOM DE LOC 3.ma LIB SITE B SUSE X64 DC10 ROOM DE LOC 3.ma LIB SITE B SUSE X64 DC10 ROOM DE LOC 3.ma LIB SITE A LINUX X64 DC41 ROOM DF LOC 5.p LIB SITE A LINUX X64 DC41 ROOM DF LOC 5.p LIB SITE A LINUX X64 DC41 ROOM DF LOC 5.p LIB SITE A LINUX X64 DC41 ROOM DF LOC 5.p LIB SITE A OPENV X64 DC41 ROOM DF LOC 5.p LIB SITE A OPENV X64 DC41 ROOM DF LOC 5.p LIB SITE A OPENV X64 DC41 ROOM DF LOC 5.p OS_PLATFORM_VALID_END