2

こんにちは、bash でスクリプトを作成しています。このスクリプトは、(現在のディレクトリにある) "contact" という単語を含むファイルの内容を読み取り、それらのファイル内のすべてのデータをアルファベット順に並べ替えて、"out. TXT"。重複したコンテンツを削除できる方法はないかと考えていました。どんな助けでもいただければ幸いです

これまでに書いたコード。

#!/bin/bash

cat $(ls | grep contact) > out.txt
sort out.txt -o out.txt
4

4 に答える 4

5

sort一意の行のみを出力するオプション-u(長いオプション: ) があります。--unique

sort -u out.txt -o out.txt

編集:(トリプルに感謝)

現在、スクリプトにはls output の解析の問題が含まれています。

これは、あなたがやろうとしていることのより良い代替です:

sort -u *contact* >out.txt
于 2013-08-11T05:12:27.457 に答える
4

コマンドを使用してこれを使用しuniqます (フラグよりも覚えやすい)

#!/ビン/バッシュ

猫 $(ls | grep 連絡先) | ソート | ユニーク > out.txt

またはこのような-uフラグsort

#!/ビン/バッシュ

猫 $(ls | grep 連絡先) | sort -u > out.txt
于 2013-08-11T05:12:31.130 に答える
0

uniqあなたが必要とすることをするかもしれません。入力から出力に行をコピーし、出力したばかりの行である場合は行を省略します。

于 2013-08-11T05:11:31.280 に答える
0

「uniq」コマンドを見て、ソート後にそこにパイプします。

于 2013-08-11T05:12:56.890 に答える