`uniq -t` 做了什么?

Bab*_*yan 15 uniq

我有一些 2003 年的旧代码,它使用命令-t选项uniq。它引发错误,因为该选项可能不再受支持。

这是使用命令的部分:

egrep -n "{ IA32_OP" ia32-decode.c | \
    awk '{ print $1 $3 $4 }' | \
    sort -t '(' +1 | \
    uniq -t ':' -f 1 | \
    sed 's/\(.*\)\:IA32_OP(\(.*\)),/#define IA32_OP_\2 \1/g' >> ia32_opcodes.h
Run Code Online (Sandbox Code Playgroud)

当时那个选项有什么作用?我可以用什么代替该命令?

cas*_*sey 13

我能找到的唯一参考-t是在GNU 邮件列表上的这个补丁中,其中包含其他线索,这个:

+  -t, --separator=S     use a character in string S as field separator\n\
Run Code Online (Sandbox Code Playgroud)

这显然是一个 GNU 扩展,但不再使用。它似乎允许为空格或制表符以外的字段选择分隔字符。尝试更换

uniq -t ':' -f 1 | \
Run Code Online (Sandbox Code Playgroud)

sed 's/:/ /' | \
uniq -f 1 | \
Run Code Online (Sandbox Code Playgroud)

这将替换:为 uniq 识别字段分隔符的空格。