小编Ben*_*ton的帖子

将输入输入到脚本中

我在ksh中编写了一个shell脚本,将CSV文件转换为Spreadsheet XML文件.它需要一个现有的CSV文件(脚本中的变量路径),然后创建一个新的输出文件.xls.该脚本没有位置参数.CSV的文件名当前已硬编码到脚本中.

我想修改脚本,以便它可以从管道中获取输入的CSV数据,这样.xls输出数据也可以通过管道传输或重定向(>)到命令行上的文件.

这是如何实现的?

我正在努力寻找有关如何编写shell脚本以从管道获取输入的文档.似乎'read'仅用于来自kb的std输入.

谢谢.

编辑:下面的脚本信息(现在修改为通过猫从管道输入,根据问题的答案.

#!/bin/ksh
#Script to convert a .csv data to "Spreadsheet ML" XML format - the XML scheme for Excel 2003
#
#   Take CSV data as standard input
#   Out XLS data as standard output
#

DATE=`date +%Y%m%d`

#define tmp files
INPUT=tmp.csv
IN_FILE=in_file.csv

#take standard input and save as $INPUT (tmp.csv)
cat > $INPUT

#clean input data and save as $IN_FILE (in_file.csv)
grep '.' $INPUT | sed 's/ *,/,/g' | sed 's/, */,/g' > …
Run Code Online (Sandbox Code Playgroud)

unix shell ksh pipe

24
推荐指数
3
解决办法
5万
查看次数

标签 统计

ksh ×1

pipe ×1

shell ×1

unix ×1