有時候我們需要去檢查文字中是否有重複的行。對於行數較少的檔案我們當然可以人工去檢查,但是如果行數比較多的話,比如成千上萬的大文字,再用人工去檢查就太不實際了。其實我們可以用乙個批處理檔案來幫我們完成這個工作。
**如下:
@echo off
for /f "delims=" %%i in (1.txt) do (
if defined _%%i (echo 重複行:%%i)else set _%%i=i
)pause
將這段**儲存為「檢查重複行.bat」的批處理檔案就可以了。
使用的時候把要檢查的檔案和這個批處理檔案放在一起,並且要檢查的文字名稱為「1.txt」,雙擊一下批處理檔案就能知道結果了。
還有其它的兩段**
**二:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('sort a.txt') do (
if "!str!"=="%%i" echo 重複行: %%i
set "str=%%i"
)pause
功能和上面的一樣的,不過會將找到的結果排序輸出。
**三:
@echo off
set /p var=paste line:
for /f "tokens=1-2 delims=" %%i in ('find /n /v "" 1.txt') do (
if "%var%"=="%%~nj" echo %%i %%~nj
)pause>nul
和上面兩個自動查詢重複行不同,這段**需要你手工輸入要查詢重複行的內容,它會將所有找到行的內容及行號輸出。
shell 刪除文字中的重複行
三種常見方法 第一,用sort uniq,注意,單純uniq是不行的。shell sort k2n file uniq a.out 這裡我做了個簡單的測試,當file中的重複行不再一起的時候,uniq將服務刪除所有的重複行。經過排序後,所有相同的行都在相鄰,因此unqi可以正常刪除重複行。第二,用s...
刪除檔案中重複的行
今天在經過多次執行指令碼後時候突然發現 etc hosts下面有好多重複的行,突然想起來之前記得學過有命令的,但是忘了,後來在群裡面吼了幾句,有好多牛人相應,閒來與大家分享,o o root zy zy cat etc hosts do not remove the following line,o...
awk中刪除重複行
在awk中,可以用!a 0 做為條件,對重複出現的行進行處理。bash 3.2 cat 2 abcabc ef123 dgag 123 bash 3.2 awk a 0 2 abcef 123dgag 對於awk a 3 需要了解3個知識點 1 awk陣列知識,不說了 2 awk的基本命令格式 aw...