안녕하세요, 로 끝나는 줄이 많은 파일이 있는데 main.css">
그 중 일부는 중복되었습니다.
이 행의 복사본을 유지하고 중복 행을 제거하고 싶습니다.
grep을 사용하여 파일에서 로 끝나는 줄을 검색할 수 있습니까 main.css">
?
지금까지 나는 다음을 가지고 있습니다 :
grep ' main.css' file.txt |sort | uniq -u
이는 내가 예상한 대로 수행되지 않으며 단지 빈 출력만 제공합니다. 도와주세요? 이것은 그렇지 않습니다
답변1
다음을 사용해야 합니다.
grep -n 'main\.css">$' file.txt
$
줄의 끝을 나타내며 분명히 그 이후에는 더 이상 내용이 있을 수 없습니다.
*
이 줄 내에서 패턴을 검색하기 때문에 여기에서는 이것이 필요하지 않으며 , 패턴이 발견되면 그 앞의 모든 항목은 자동으로 무시됩니다. 여기서 이스케이프해야 할 유일한 것은 .
의 유일한 정규식 연산자입니다 main.css">
. -r
단일 파일만 제공하는 경우에도 이는 중복됩니다.
답변2
awk를 사용할 수도 있습니다.
$ cat file
foo main.css">
ghj
brar main.css">
$ awk '/main\.css">$/{print NR}' file
1
3
또는 sed
:
$ sed '/main\.css">$/=' file
1
3
답변3
main.css>
내 생각 에는 중복된 경우에도 없는 다른 행도 유지하고 싶다고 생각합니다 .
Line 1
Line 2
Line 1
Line 2 main.css">
Line 2 main.css">
Line 3
Line 3 main.css">
Line 4
따라서 명령 후에는 다음을 얻게 됩니다.
Line 1
Line 1
Line 2
Line 2 main.csv>
Line 3
Line 3 main.csv>
Line 4
이 경우 다음 명령을 사용하면 됩니다.
sort your_file | awk '!/main.css">$/;/main.css">$/,/main.css">$/{if($0!=p){print;p=$0}}'
답변4
sed '/main.css/d' file.txt > ~/Desktop/solution.txt
효과는 매우 좋습니다 :)