我有一些 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 识别字段分隔符的空格。