【发布时间】:2011-11-18 17:47:55
【问题描述】:
我正在尝试从文件中删除几行。我确切地知道要删除多少行(例如,从顶部开始 2 行),但不知道文件中有多少行。所以我尝试了这个简单的解决方案:
$ wc -l $FILENAME
119559 my_filename.txt
$ LINES=$(wc -l $FILENAME | awk '{print $1}')
$ tail -n $(($LINES - 2)) $FILENAME > $OUTPUT_FILE
输出没问题,但是LINES怎么了??
$ wc -l $OUTPUT_FILE
119557 my_output_file.txt
$ echo $LINES
107
希望有人可以帮助我了解发生了什么。
【问题讨论】:
-
我不能告诉你 LINES 发生了什么,但我可以提供一个替代解决方案:head(1)/tail(1) 允许跳过 N 首/最后一行,所以你不必自己做任何数学运算。
标签: bash shell environment-variables