줄이 특정 문자열로 끝나는지 확인하려면 grep을 사용하세요.

줄이 특정 문자열로 끝나는지 확인하려면 grep을 사용하세요.

안녕하세요. 로 끝나는 줄이 많고 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

완벽하게 잘 작동했습니다 :)

관련 정보