2013-11-21 21 views
0

我使用KornShell腳本處理。使用位置文件和密鑰的固定位置過濾唯一行

我有此格式的位置文件:

XXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYY 

X是我的鑰匙11 lenght,我想爲過濾與唯一鍵約束此文件。

X是一個字符串類型至極能有這樣的價值觀:

FJUYHGRESJFYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY 
ZNXKDDYHDNKYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY 

我有測試此命令:

cat Stack.txt | uniq -D -s 11 > Result.txt 

謝謝您的幫助:)

回答

1

試試這個命令:

cat Stack.txt | uniq -w 11 > Result.txt 
1

說,如果你有: -

XXXXXXXXXXX:YYYYYYYYYYYYYYYYYYYYY 

然後你可以使用: -

while IFS=':' read field1 field2 
do 
    if [ $(echo "${field1}" | sed -n '/XXXXXXXXXXX/p') ] 
    then 
    (commands) ... 
    elif [ $(echo "${field1}" | sed -n '/key2/p') ] 
    then 
    (other commands) ... 
    fi 
done 
+0

我沒有得到一個分離char和我的鑰匙XXXXXXXXXXX可以採取不同的值。我需要把我的新文件中的唯一身份行用這個鍵 –

+0

如果你想這樣做,你可能需要看看PostgreSQL。你不能用shell腳本真正做好關係工作。我的意思是,是的,你可以做相對簡單的行/列的東西,但它不會像健壯。 – petrus4

0

我發現:)

在命令uniq的有-w參數:

-w Specifies the number of characters to compare in lines, after any characters and fields have been skipped 

所以我要創建這個命令:

cat Stack.txt | uniq的-w 11>的Result.txt