mau*_*era 2 linux bash shell awk
我有一个包含许多 csv 文件的目录。我想要一个shell脚本来检查每个文件的第一行是否相同。例如,这些文件具有相同的标头,因此检查应返回 True。
\n\xe2\x9d\xaf cat file1.csv\ncolumn1,column2,column3\n3,1,3\n4,3,9\n\xe2\x9d\xaf cat file2.csv\ncolumn1,column2,column3\n5,4,1\n1,8,2\nRun Code Online (Sandbox Code Playgroud)\n我认为这是一个已经被问到的问题,但我还没有在 Stackoverflow 上看到它。
\n这个问题是类似的,它检查一个文件中的所有行是否相同:https://unix.stackexchange.com/questions/533915/check-if-all-lines-in-a-file-are-same ://unix.stackexchange.com/questions/533915/check-if-all-lines-in-a-file-are-same 。
\n我尝试过的:
\necho "$(ls -AU | head -1)"获取一个文件的第一行for循环),但无法弄清楚如何做到这一点uniq和wc,但这两个命令似乎都特定于迭代单个文件的行(而不是迭代通用列表输出) )使用 GNUsed和bash:
rows=$(sed -s '1!d' *.csv | sort -u | wc -l)
if [[ "$rows" -eq 1 ]]; then echo "true"; else echo "false"; fi
Run Code Online (Sandbox Code Playgroud)
sed -s '1!d' *.csv输出到 stdout 当前目录中后缀为 的所有文件的第一行.csv。