如何写文本文件中的数据导入Excel使用bash的同一个小区(How to write text f

2019-09-27 16:18发布

我遇到的情况,我希望到一个文本文件中所有的输出重定向到Excel中的一个单元格。

文本文件中的数据:

"remove dead code" 
"keep cassandra and postgres in OR condition"
"InsertFailCDRList"
"to be updated in error handling US, write TODO here in comments"

我想在我的一列此数据。 对于如。

    C1             C2
    1            TEXT FILE OUTPUT HERE
    2            OTHER TEXT FILE OUTPUT HERE

但问题是,文本不来了单个细胞,但它传播到多个单元格。

使用命令:

#!/bin/bash  -x
output=$(cat commentmessage.txt)
number=1
echo $number,"${output}" > buc_review_comments_data3.csv

输出是这样的:

        C1             C2
         1            "remove dead code"
        "keep cassandra and postgres in OR coniditon"
        "InsterFailCDRList"

我希望所有在第1行第2列。我们怎样才能做到这一点使用bash? 请帮忙。

所需的输出:

       C1                C2
        1            "remove dead code"
                     "keep cassandra and postgres in OR coniditon"
                      "InsterFailCDRList"

        2             "new data here"
                      "new data"

所以基本上,我有ID = BUC123

totalcomments = 4

文本文件 - 包含多个评论。

在Excel中上面的格式想要这些。

Answer 1:

您可以使用while循环遍历输入文件的内容,然后前面加上你的号的每一行:

#!/bin/bash
infile=commentmessage.txt
outfile=buc_review_comments_data3.csv
number=1

while read line
do
    echo "$number","$line"
done < "$infile" > "$outfile"

让我补充一些提示:

  • 大括号主要是有用的分开被允许在双引号中的变量名其他字符变量名,如: "${myvar}otherstuff" 。 但他们也可以提高代码的可读性。 在你的榜样,你可以做echo "$number,$line" ,以及(因为,没有在变量名允许的),但echo "${number},${line}是好的,什么你的变量名清楚是,同时节省了单独报价。
  • 虽然没有必要引用$number在你的榜样,作为一个最佳实践, 你应该总是用双引号你的变量扩展 。
  • 如果你只是从文件中读取,使用重定向( < ),而不是cat ,看到猫的无用使用 。


文章来源: How to write text file data into same cell of excel using bash
标签: excel bash shell