我需要一个示例 bash 脚本来将文件 (Result.txt) 的第一行与另一个文件 (table.csv) 的第一行和第一列进行比较,然后将结果发送到 html 文件。
我的编码非常基础,这是我到目前为止发现的:
#!/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)
感谢您的帮助
最佳答案
稍微调整你的脚本。
#!/bin/bash
Res=$(head -n 1 "$1")
tab=$(head -n 1 "$2")
[[ $Res == $tab ]] && echo The same
注释
- “dot”不是有效的标识符(即变量名)字符:有效的是字母、数字和下划线,且第一个字符不能是数字。
- 如果您正在执行
head -1
,则无需将其通过管道传输到tail -1
- 我认为
[[
比test
更具可读性,主要是因为[[
强制您拥有]]
- 括号启动一个子 shell,这对于 echo 语句来说是多余的。
- 退出只会退出子 shell,而不是您的程序
- 如果有多个语句,请使用
if ...;然后 ...; fi
——它更具可读性。
关于sed - 比较文本和 csv 文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22360273/