我正在尝试检查文件的第一行和最后一行,以查看它是否包含某个字符串。该文件将遵循以下格式
HEADER 2016-11-7
...
TOTAL IS: 20938
我正在尝试检查第一行是否包含字符串,HEADER
然后将其删除。我有:
#get first line of file
header=`head -n +1 rubbish.txt`
echo $header
#If first line contains header, remove it and ouput it to new file
case "HEADER" in
*"$header"*) tail -n +2 rubbish.txt > rubbish.txt.out
header="TRUE"
;;
*) echo no HEADER present ;;
esac
输出:
HEADER 10-10-2019
no HEADER present
为什么说没有标题?
因为您已将替换word
为pattern
;您想要以下方面的东西:
...
case "$header" in
HEADER*) tail -n +2 rubbish.txt > rubbish.txt.out
header="TRUE"
;;
*) echo no HEADER present ;;
esac
...
实现目标的另一种方法是sed
仅在标题行存在的情况下才使用删除标题行(此处使用GNU-i
扩展名进行就地编辑):
sed -i '1{/^HEADER/d}' rubbish.txt
$
文件最后()行上可能存在的页脚行的类似示例:
sed -i '${/^TOTAL IS:/d}' rubbish.txt
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句