行が特定の文字列で終わるかどうかを確認するには、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

効果はとても良いです:)

関連情報