Mój plik składa się z następujących elementów; w przybliżeniu:
username:username:username:username:username
Powyższa linia kontynuuje do około 600 znaków.
Korzystam z awk
polecenia, aby użyć go jako argumentu w żądaniu API / HTTP wysłanym z wiersza polecenia.
Korzystam ze skryptu, aby uzyskać listę kont użytkowników, które „śledzą” mnie, a co około 24 godziny, porównując oryginalną listę na moim dysku twardym z listą nowo wydrukowanych nazw użytkowników (i powtarzając, kto nie obserwuje ja . Będę musiał zamknąć moją logikę w pętli, używając bash .. testując każdą nazwę użytkownika.
Mój obecny skrypt:
user=$(awk -F: '{ print $1 }' FILE) # Grab $User to use as an argument.
following=$(exec CURRENT_FOLLOWERS) # Outputs the new file
echo "X amount of users are following you on 78B066B87AF16A412556458AC85EFEF66155"
SAVE CURRENT FOLLOWERS TO NEW A FILE.
if [[ DIFFERENCE IS DETECTED ]] ; then
echo -ne "$User NO LONGER FOLLOWING YOU\r"
else echo -ne "This user is following you still.\r"
fi
Moje pytanie brzmi;
Jak mogę wyprowadzić różnicę między 2 plikami?
bash
command-line
awk
output
Ben
źródło
źródło
diff
, prawda?Odpowiedzi:
Narzędzie, którego szukasz, to
diff
. Szczegółowe informacje można znaleźć w instrukcji.źródło
Biorąc pod uwagę dwa pliki zawierające nieposortowane listy użytkowników, np
i
następnie, aby uzyskać prostą listę użytkowników,
file1
ale niefile2
możesz, możesz to zrobići podobnie, aby wprowadzić użytkowników,
file2
ale nie wejśćfile1
Jeśli pliki listy są już posortowane, można je odpowiednio uprościć
comm -23 file1 file2
icomm -13 file1 file2
.źródło
comm
bez sortowania? Mój plik tekstowy ma wartości podoba1
,2
,01
,02
,0000
,0001
,0002
, itd. Korzystaniesort
będzie de-sort rozkaz ...Najlepszym poleceniem do wyświetlenia różnicy w zawartości plików jest
źródło
diff [options] from-file to-file
diff
porównuje zawartość dwóch plików z pliku i do pliku. Możesz określić-i
opcję, która ignoruje zmiany w przypadku; rozważ równoważne pisanie dużymi i małymi literami.Aby uzyskać więcej informacji, możesz skorzystać z tego linku: http://www.computerhope.com/unix/udiff.htm lub zajrzeć na stronę podręcznika.
źródło
możesz wypróbować te same okna, co
fc
polecenie w systemach Unix i Linux, tjdiff <file_new> <file_old>
. polecenie.Linia z
+++
lub---
przed nimi zmieniła się i jedna z nie+'s
i-'s
nie zmieniła sięLinie ze
-
znakiem są usuwane z nowego pliku, ale istniały w starej wersjiLinie ze
+
znakiem są dodawane z nowego pliku, jednak nie istniały w starej wersji plikuNotacja systemu Linux
Linux używa
>
i<
>
oznacza wiersz ze starego pliku<
oznacza wiersz z nowego pliku, który został zmieniony w starym plikuźródło
Idź do vimdiff dla Pokazuje różnice między dwoma, trzema lub czterema wersjami tego samego pliku.
źródło