我的文件超过150000行。使用sed我想抓住包含某个字符串的行。 我想将文件分成3个部分,并抓住每个部分中包含字符串的行。 现在我有这个:
linenumbertotal=$(wc -l < $filename)
echo -e ${linenumbertotal}
linenumberdivided=$((linenumbertotal / 3))
echo ${linenumberdivided}
first=$((linenumbertotal - linenumberdivided - linenumberdivided))
second=$((linenumbertotal - linenumberdivided))
third=$linenumbertotal
echo $first
echo $second
echo $third
这导致每个部分的行数正确。
现在我想做这样的事情:
sed '1,${first}d' $filename > first.tmp
grep 2003 first.tmp
sed '${first},${second}d' > second.tmp
grep 2004 second.tmp
sed -'${second},${third}d' > third.tmp
grep 2005 third.tmp
但是sed参数中的变量会导致错误。
我试过了:
sed "1,'${first}'!d" $filename
但它会导致sed:表达式#1,字符3:意外','
有些用户将此问题标记为另一个问题的副本,但我的问题不一样......我的问题是从文件中提取行,另一个问题是关于替换文本。