如果文本文件为空,则如何使用sed或其他标准UNIX工具删除文本文件的第一行(!).我试过这个命令:
sed '/^$/d' < somefile
Run Code Online (Sandbox Code Playgroud)
但是这将删除第一个空行,而不是文件的第一行,如果它是空的.关于行号,我可以给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
Run Code Online (Sandbox Code Playgroud)
Wil*_*ell 17
sed中最简单的事情是:
sed '1{/^$/d}'
Run Code Online (Sandbox Code Playgroud)
请注意,这不会删除包含所有空格的行,而只会删除仅包含单个换行符的行.摆脱空白:
sed '1{/^ *$/d}'
Run Code Online (Sandbox Code Playgroud)
并消除所有空格:
sed '1{/^[[:space:]]*$/d}'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6763 次 |
| 最近记录: |