English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。
uniq 可检查文本文件中重复出现的行列。
uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]
参数:
-c或--count 在每列旁边显示该行重复出现的次数。
-d或--repeated 仅显示重复出现的行列。
-f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。
-s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。
-u或--unique 仅显示出一次的行列。
-w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。
--help 显示帮助。
--version 显示版本信息。
[输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据;
[输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。
文件testfile中第 2、3、5、6、7、9行为相同的行,使用 uniq 命令删除重复的行,可使用以下命令:
uniq testfile
testfile中的原有内容为:
$ cat testfile #原有内容 اختبار 30 اختبار 30 اختبار 30 مرحبًا 95 مرحبًا 95 مرحبًا 95 مرحبًا 95 لينكس 85 لينكس 85
بعد إزالة السطور المكررة باستخدام أمر uniq، سيكون لدينا النتيجة التالية:
$ uniq testfile # المحتوى بعد إزالة السطور المكررة اختبار 30 مرحبًا 95 لينكس 85
تحقق من الملف وإزالة السطور المكررة في الملف، وعرض عدد مرات ظهور كل سطر في بداية السطر. استخدم الأمر التالي:
uniq -c testfile
النتيجة ستكون كالتالي:
$ uniq -c testfile # المحتوى بعد إزالة السطور المكررة 3 اختبار 30 # معنى الرقم المسبق هو أن السطر قد ظهر 3 مرات 4 مرحبًا 95 # معنى الرقم المسبق هو أن السطر قد ظهر 4 مرات 2 لينكس 85 # معنى الرقم المسبق هو أن السطر قد ظهر 2 مرة
عندما تكون السطور المكررة غير متجاورة، لا يتم استخدام أمر uniq، أي إذا كان محتوى الملف كالتالي، لا يتم استخدام أمر uniq:
$ cat testfile1 # المحتوى الأصلي اختبار 30 مرحبًا 95 لينكس 85 اختبار 30 مرحبًا 95 لينكس 85 اختبار 30 مرحبًا 95 لينكس 85
في هذه الحالة يمكننا استخدام sort:
$ sort testfile1 | uniq مرحبًا 95 لينكس 85 اختبار 30
تقدير عدد المرات التي تظهر السطور المختلفة في الملف:
$ sort testfile1 | uniq -c 3 مرحبًا 95 3 لينكس 85 3 اختبار 30
البحث عن السطور المكررة في الملف:
$ sort testfile1 | uniq -d مرحبًا 95 لينكس 85 اختبار 30