я имею, имеют список фильмов, которые я вниз ежедневно загружаю, и прибывает в следующий формат
act-of-valor-2012
act-of-valor-2012
the-possession-2012
the-possession-2012
american-crude-2008
american-crude-2008
when-strangers-appear-2001
like-father-like-son-2005
like-father-like-son-2005
get-him-to-the-greek-2010
get-him-to-the-greek-2010
wall-street-money-never-sleeps-2010
wall-street-money-never-sleeps-2010
christmas-evil-1980
days-of-glory-1944
Я должен сохранить это в том же порядке, но удалить dupl.icate строки, таким образом, это становится
act-of-valor-2012
the-possession-2012
american-crude-2008
when-strangers-appear-2001
like-father-like-son-2005
get-him-to-the-greek-2010
wall-street-money-never-sleeps-2010
christmas-evil-1980
days-of-glory-1944
вид изменяет порядок, у кого-либо есть какие-либо идеи, как я могу выполнить это?
Спасибо
Вы хотите эти uniq
команда.
От man uniq
:
Filter adjacent matching lines from INPUT (or standard input), writing to OUTPUT (or standard output).
With no options, matching lines are merged to the first occurrence.
Использование это следующим образом:
uniq movies.txt
Вывод, как желаемый.
Версия AWK:
awk '{array[i++]=$0}END{for(j=0;j<=i;j++) if(array[j] != array[j-1]){print array[j]} }' movies.txt
В основном то, что это делает, является считанными данными в массив, и распечатайте, только они выравнивают, которые не имеют предыдущей строки как дубликата.
Более короткий путь был бы как показанный здесь:
$ awk '!a[$0]++' movies.txt
act-of-valor-2012
the-possession-2012
american-crude-2008
when-strangers-appear-2001
like-father-like-son-2005
get-him-to-the-greek-2010
wall-street-money-never-sleeps-2010
christmas-evil-1980
days-of-glory-1944