使用位置文件和键的固定位置过滤唯一行

时间:2013-11-21 10:00:29

标签: linux shell ksh

我使用KornShell Script。

我的位置文件格式如下:

XXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYY

X是我的关键11长度,我想用唯一的键约束来过滤这个文件。

X它是一个字符串类型,可能有这样的值:

FJUYHGRESJFYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
ZNXKDDYHDNKYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

我测试了这个命令:

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

感谢您的帮助:)

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

尝试此命令:

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

答案 2 :(得分: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