对不起那个微不足道的问题。
我使用unix join 命令进行了一些操作,试图获取标签而不是空格作为默认分隔符。 -t是参数,但这些不起作用(ubuntu 9.10 64 bit 2.6.31-14,GNU coreutils 7.4版)
join file1 file2 -t"\t"
join file1 file2 -t="\t"
join file1 file2 -t="\\t"
join file1 file2 -t $"\t"
等等。当然,我总是可以使用一些不太优雅的解决方案,比如
join file1 file2 > output
sed "s/ /\t/g" output
但我想看起来很聪明:-)而且,如果有一个-t参数,它必须有效。
答案 0 :(得分:42)
我认为它需要一个即时生成的变量
尝试
join file1 file12 -t $'\t'
答案 1 :(得分:5)
您可以按CTRL + v Tab
进入标签join -t '<CTRL+v><Tab>' file1 file2
答案 2 :(得分:3)
join -t "`echo '\t'`" file1 file2
ps:在我的机器上,红帽企业Linux服务器版本5.1(Tikanga),命令join -t $'\t' file1 file2
返回“非法变量名称”。
答案 3 :(得分:3)
一个似乎有效的替代技巧是将-t选项用引号括起来用文字制表符。这看起来像:
join '-t ' ...
在t和结束引号之间有一个可变空格(因为它是一个标签)。
键入,它是:
join<Spc>'-t<Ctrl-v><Tab>' ...
答案 4 :(得分:2)
man join说,选项必须在文件名前面。你试过吗
join -t "\t" file1 file2
修改:反映Tonio的回答,正确的行将会读取
join -t $'\t' file1 file2
答案 5 :(得分:0)
其他方式是:
join -t“`echo -e”\ t“`”file1 file2`
或以更多的方式:
加入-t“$(echo -e”\ t“)”file1 file