我编写了一个 bash 脚本来运行一系列命令,最终生成一个名为 DataAudit.txt
的文件。如果我正在使用的文件恰好名为 file.csv
,它会很好用。
我对这一切都很陌生,不知道如何编写脚本,以便它可以在我想要审核的任何文件上运行。
名为 audit.sh
的脚本位于名为 PurgatoryCSV
的文件夹中,其想法是我将一个文件放入其中,运行该脚本,然后移动将文件发送到我工作流程的下一步。
如果我能在解决这个障碍时获得任何帮助,我将不胜感激。
这是脚本:
#!/bin/bash
echo -n "DATA AUDIT
------------
COLUMN NAMES
------------
" > DataAudit.txt
csvcut -n file.csv >> DataAudit.txt
echo -n "
---------------------------------------
FIRST TEN ROWS OF FIRST FIVE COLUMNS
---------------------------------------
" >> DataAudit.txt
csvcut -c 1,2,3,4,5 file.csv | head -n 10 >> DataAudit.txt
echo -n "
------------
COLUMN STATS
------------
" >> DataAudit.txt
csvcut file.csv | csvstat >> DataAudit.txt
echo -n "
---END AUDIT" >> DataAudit.txt
最佳答案
您可以使用从命令行传入的变量:第一个为 $1
,第二个为 $2
,依此类推。看起来这里有两个变量、file.csv
和 DataAudit.txt
如果将 file.csv
替换为 $1
,并将 DataAudit.txt
替换为 $2
,您现在可以执行您的脚本通过执行以下操作:
./audit.sh myotherfile.csv MyOtherAudit.txt
或者为了提高可读性,通常将它们分配给脚本顶部的命名变量:
INPUTFILE=$1
OUTPUTFILE=$2
然后,在您的代码中,您可以使用 $INPUTFILE
和 $OUTPUTFILE
引用这些内容
关于bash - 修改 BASH 脚本以处理我告诉它的任何文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7934035/