2014-03-12 35 views
2

我需要一个示例bash脚本来比较文件的第一行(Result.txt)与另一个文件(table.csv)的第一行和第一列,然后将结果发送到一个html文件。比较文本和csv文件的内容

我在编码非常基本的,这是我迄今发现:

#!/bin/sh 
Result.txt="$(head -n 1 < $1|tail -n 1)" 
table.csv="$(head -n 1 < $2|tail -n 1)" 
test "$R.txt" = "$sheet.csv" && (echo The same; exit 0) 

感谢您的帮助

+1

即使你的外壳让你拥有”。在一个变量名字符,这不是一个好主意。 'Result =“...”'更容易。你真的意味着你的代码的最后一行使用了一个'Result.txt'变量,而不仅仅是'R.txt'。对? '“$ R.txt”'将永远是空的。你还需要为你的HTML文件应该是什么样子提供某种类型的规范。阅读awk,它是'printf'语句。祝你好运。 – shellter

回答

2

稍微调整你的脚本。

#!/bin/bash 
Res=$(head -n 1 "$1") 
tab=$(head -n 1 "$2") 
[[ $Res == $tab ]] && echo The same 

  • “点”不是有效的标识符(即,变量名)字符:有效是字母,数字和下划线,并且第一个字符不能是数字。
  • 如果你正在做head -1,也没有必要管到这一点tail -1
  • 我觉得[[test更具可读性,这主要是因为[[迫使你有]]
  • 括号启动子shell是矫枉过正的回声声明。
    • 出口只会退出子shell不是你的程序
    • 如果您有多个语句,用if ...; then ...; fi - 这是更具可读性。
+0

感谢您的回复 – user3409828