bash:使用变量设置选项卡字段分隔符

时间:2016-06-25 20:12:21

标签: bash unix tabs gnu-coreutils

某些bash工具,例如sort,join,cut(所有coreutils?),需要以一种有点特殊的方式传递字段分隔符:sort -t $'\t' ...。这里有很多问题可以解决这种问题。

我的问题是我试图将字段分隔符作为变量传递,例如:

SEP="\t"
sort -t $SEP ...

使用普通字符,可以使用,但不能使用标签。我尝试了一些变化,但它们都不起作用。怎么办呢?

2 个答案:

答案 0 :(得分:1)

使用ANSI-C quoting声明它:

sep=$'\t'

并将其称为"$sep",引号对于保留字面含义非常重要:

sort -t "$sep" file.txt

示例:

$ cat file.txt 
foo     bar
spam    egg
abc     def

$ sep=$'\t'

$ sort -t $sep file.txt 
sort: multi-character tab ‘file.txt’

$ sort -t "$sep" file.txt 
abc     def
foo     bar
spam    egg

另请注意,为了消除环境变量的歧义,我使用了小写字符作为变量名称,除非你有充分的理由也应该这样做。

答案 1 :(得分:-1)

在按[TAB]之前使用[CONTROL] + [V]键来引入标签字符。

var ep = {}; // create variable
var ev = {}; // create variable

ep.top = $(charct).offset().top;  // get top offset
ev.left = $(charct).offset().left; // get left offset

B'/ P>

如果您复制粘贴代码,请小心,因为选项卡可能会丢失,因为它们实际上已丢失,在这篇文章中:-)