私の出力は次のようになります。
[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行ずつ出力しようとしました。名前の後に任意の文字列を含めることができます。どの順序で表示されるかは問題ではありません。
誰でも助けることができますか?
答え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