2016-12-13 118 views
-1

我需要准备一个csv作为加载数据的手段。我有一个包含n个html文件的目录。每个html文件的代码都需要复制并粘贴到csv字段中。理想情况下,这是我想的CSV看起来像将目录中每个文件的目录内容转化为csv记录

FileName      Code 
filename1.html    contents of filename1.html here 
filename2.html    contents of filename2.html here 

我知道有办法管目录到CSV的LS,但是我不知道如何实现以下目的是什么。 我在想,我可能需要创建一个循环,并且每次在每个时间间隔添加一个分隔符后都附加文件。但我不太确定从哪里开始。写这作为一个shell/bash脚本是最好

任何帮助,将不胜感激

+0

把整个HTML文件的内容** **到一个CSV听起来不像对我来说是一个好主意,这将很难用所有引号逃脱 –

+0

该html文件实际上很小,它只是一个电子签名,可能有5行代码。 –

回答

0

假设你有两个文件:

文件a包含:

abc 

123 

文件b包含:

def 

456 

so:

#!/bin/bash 

echo "Filename,Code" 

files=$(ls) 

for file in ${files[@]}; do 
    echo -n $file, 
    tr -d '\n' < $file 
    echo "" 
done 

上面的代码将输出:

Filename,Code 

a,abc123 

b,def456 
+0

谢谢。我将如何移动到一个csv我尝试使用> test.csv调用脚本时,但我收到执行错误 –

+0

你得到什么erros? –

+0

我看到了什么问题,在实际文件结束之前导致输出分裂的代码中有逗号 –

1
  • 创建一个文件夹,我在上面
  • 提到创建一个文件中的文件ab称为shell.sh与脚本的内容此文件夹内

运行以下c ommand让你的shell脚本可执行

chmod +x shell.sh 

运行脚本之前,行更改从:

files=$(ls) 

files=$(ls | grep -v shell | grep -v csv) 

然后运行以下命令来查看的输出脚本

./shell.sh 

现在重定向到您的CSV文件:

./shell > file.csv 

要查看该文件file.csv运行的内容:

cat file.csv 
相关问题