こんにちは、で終わる行が多いファイルがあり、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
効果はとても良いです:)