Bash 通过命令行别名进行CSV列计数

Bash 通过命令行别名进行CSV列计数,bash,ubuntu,csv,scripting,command-line-interface,Bash,Ubuntu,Csv,Scripting,Command Line Interface,我有一个Bash脚本问题,这个问题对我来说不再重要,但仍然让我发疯,因为我无法理解它 我试图通过命令行比较CSV文件的列数,发现了一些看起来很有希望的说明。最初的命令工作得很好,但每次创建别名的尝试都失败了 原始命令行-工作 head-n1filename.CSV | awk'{split($0,pieces,“,”);for(i=1;i别名不使用$1,脚本使用 解决方案1。 alias csvcc="head -n 1 | sed 's/\,/\n/g' | wc -l"

我有一个Bash脚本问题,这个问题对我来说不再重要,但仍然让我发疯,因为我无法理解它

我试图通过命令行比较CSV文件的列数,发现了一些看起来很有希望的说明。最初的命令工作得很好,但每次创建别名的尝试都失败了

原始命令行-工作


head-n1filename.CSV | awk'{split($0,pieces,“,”);for(i=1;i别名不使用
$1
,脚本使用

解决方案1。

alias csvcc="head -n 1  | sed 's/\,/\n/g' | wc -l"
                       ^--- no $1, input will be read from stdin
用法:

csvcs < ee-content.csv
csvcs ee-content.csv
然后使脚本可执行:

chmod +x ~/bin/csvcc
在ubuntu上,
$HOME/bin
默认添加到
$PATH
中。如果它不在您的系统中,请将此行添加到您的
~/.配置文件中

export PATH="$HOME/bin:$PATH"
用法:

csvcs < ee-content.csv
csvcs ee-content.csv

别名不使用
$1
,脚本使用

解决方案1。

alias csvcc="head -n 1  | sed 's/\,/\n/g' | wc -l"
                       ^--- no $1, input will be read from stdin
用法:

csvcs < ee-content.csv
csvcs ee-content.csv
然后使脚本可执行:

chmod +x ~/bin/csvcc
在ubuntu上,
$HOME/bin
默认添加到
$PATH
中。如果它不在您的系统中,请将此行添加到您的
~/.配置文件中

export PATH="$HOME/bin:$PATH"
用法:

csvcs < ee-content.csv
csvcs ee-content.csv

rzymek的解决方案1不起作用,因为
csvccrzymek的解决方案1不起作用,因为
csvcc谢谢,但别名仍然给出行数,而不是列数。知道为什么吗?谢谢,但别名仍然给出行数,而不是列数。知道为什么吗?