如果文本文件为空,如何删除文本文件的第一行(!),例如使用sed 或其他标准 UNIX 工具。我试过这个命令:
sed '/^$/d' < somefile
但这将删除第一个空行,而不是文件的第一行,如果它是空的。我可以给 sed 一些关于行号的条件吗?
根据 Levon 的回答,我基于 awk 构建了这个小脚本:
#!/bin/bash
for FILE in $(find some_directory -name "*.csv")
do
echo Processing ${FILE}
awk '{if (NR==1 && NF==0) next};1' < ${FILE} > ${FILE}.killfirstline
mv ${FILE}.killfirstline ${FILE}
done
最佳答案
sed 中最简单的事情是:
sed '1{/^$/d}'
请注意,这不会删除包含所有空格的行,而只会删除仅包含一个换行符的行。要摆脱空白:
sed '1{/^ *$/d}'
并消除所有空格:
sed '1{/^[[:space:]]*$/d}'
关于shell - 如果文件的第一行为空,则删除它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11226938/