Sed 比较文本文件和csv文件的内容
我需要一个bash脚本示例来比较文件的第一行(Result.txt)和另一个文件(table.csv)的第一行和第一列,然后将结果发送到html文件 我在编码方面非常基础,这是我到目前为止发现的:Sed 比较文本文件和csv文件的内容,sed,awk,diff,Sed,Awk,Diff,我需要一个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
#!/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)
#/垃圾箱/垃圾箱
Result.txt=“$(head-n1<$1 | tail-n1)”
表.csv=“$(头部-n1<$2 |尾部-n1)”
测试“$R.txt”=“$sheet.csv”&&&(回显相同;退出0)
感谢您的帮助稍微调整一下脚本
#!/bin/bash
Res=$(head -n 1 "$1")
tab=$(head -n 1 "$2")
[[ $Res == $tab ]] && echo The same
注释
- “点”不是有效的标识符(即变量名)字符:有效的是字母、数字和下划线,第一个字符不能是数字
- 如果您正在执行
,则无需将其导入head-1
tail-1
- 我认为
比[[
测试更具可读性,主要是因为
迫使你拥有[[
]
- 括号启动了一个子shell,这对于echo语句来说是多余的。
- 退出只会退出子shell,而不会退出您的程序
- 如果您有多条语句,请使用
——这样可读性更好if…;then…;fi
Result=“…”
要简单得多。您的意思是代码的最后一行使用了Result.txt
变量,而不仅仅是R.txt
。对吗?“$R.txt”
将始终为空。您还需要为html文件的外观提供某种形式的说明。请阅读有关awk的printf
语句。祝您好运。