Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 命令行CSV查看器_Linux_Command Line_Csv_Cygwin - Fatal编程技术网

Linux 命令行CSV查看器

Linux 命令行CSV查看器,linux,command-line,csv,cygwin,Linux,Command Line,Csv,Cygwin,我的问题和你的一样 而且column-s,-t命令的答案几乎是完美的——除了它似乎不像我所期望的那样处理空的csv字段。给定输入 col1,,col3 ,col2, 产生: col1 col3 col2 但我想: col1 col3 col2 是否有一个选项可以通过column命令实现上述功能,或者有一种替代方法来实现此功能?(cygwin环境)使用cat和sed cat filename | sed 's/[~\],/\t/g' 使用cat和sed cat fil

我的问题和你的一样 而且
column-s,-t
命令的答案几乎是完美的——除了它似乎不像我所期望的那样处理空的csv字段。给定输入

col1,,col3
,col2,
产生:

col1  col3
col2
但我想:

col1      col3
     col2
是否有一个选项可以通过column命令实现上述功能,或者有一种替代方法来实现此功能?(cygwin环境)

使用cat和sed

cat filename | sed 's/[~\],/\t/g'
使用cat和sed

cat filename | sed 's/[~\],/\t/g'

这与优雅相去甚远,这可能是您已经想到并正在寻找更好的解决方案,但我通过执行一系列sed替换来解决这个问题,在空字段中添加空格。我的bashrc中有这些函数

csvcolumn() { sed -e "s/^$2/ $2/" -e "s/$2$/$2 /" -e "s/$2$2/$2 $2/g"  -e "s/$2$2/$2 $2/g" $1 | column -t -s$2 ; }
csvcomma() { sed -e 's/^,/ ,/' -e 's/,$/, /' -e 's/,,/, ,/g'  -e 's/,,/, ,/g' $1 | column -t -s, ; }
第一个需要两个参数才能指定分隔符。第二个是相同的东西,但它只需要一个arg,并假设分隔符是逗号,因为我通常使用逗号

csvcolumn input.csv ,


这与优雅相去甚远,这可能是您已经想到并正在寻找更好的解决方案,但我通过执行一系列sed替换来解决这个问题,在空字段中添加空格。我的bashrc中有这些函数

csvcolumn() { sed -e "s/^$2/ $2/" -e "s/$2$/$2 /" -e "s/$2$2/$2 $2/g"  -e "s/$2$2/$2 $2/g" $1 | column -t -s$2 ; }
csvcomma() { sed -e 's/^,/ ,/' -e 's/,$/, /' -e 's/,,/, ,/g'  -e 's/,,/, ,/g' $1 | column -t -s, ; }
第一个需要两个参数才能指定分隔符。第二个是相同的东西,但它只需要一个arg,并假设分隔符是逗号,因为我通常使用逗号

csvcolumn input.csv ,


如果你是vimmer,使用juuust

如果你是vimmer,使用juuust

-n选项存在于debian中。e、 g:

>$ echo -e "col1,,col3\n,col2," | column -n -s, -t
col1        col3
      col2  

-n选项存在于debian中。e、 g:

>$ echo -e "col1,,col3\n,col2," | column -n -s, -t
col1        col3
      col2  

这与给出的示例不匹配(
echo col1,col3 | sed's/[~\],/\t/g'
仍然输出
col1,col3
)。如果内容宽度不同,用制表符替换会导致列排列不正确。这与给出的示例不匹配(
echo col1,col3 | sed's/[~\],/\t/g'
仍然输出
col1,col3
)如果内容宽度不同,用制表符替换会导致列排列不正确。是的,你是对的,我也在想同样的事情,但它奏效了。是的,你是对的,我也在想同样的事情,但它奏效了。