
안녕하세요. 로 끝나는 줄이 많고 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
완벽하게 잘 작동했습니다 :)