Gil*_*Gil 10 linux bash grep sed
我正在尝试从bash中的特定行开始逐行读取文件.我已经使用while命令通过递增计数来读取文件的每一行.我可以从特定的线开始吗?
let count=0
declare -a ARRAY
while read LINE; do
ARRAY[$count]=$LINE
vech=${ARRAY[$count]}
if [...blah ..]
then
...blah..
fi
sleep 2
((count++))
done < filec.c
Run Code Online (Sandbox Code Playgroud)
欢迎以建议或算法的形式提供任何形式的帮助.
编辑:我正在尝试将行号作为变量传递.我正在Grepping一个特定的模式,如果找到,应该从模式开始传递行号.
Tim*_*ote 15
我会使用sed的地址从特定的行号开始并打印到文件的末尾:
lineNumber=10
sed -n "$lineNumber"',$p' |
while read line; do
# do stuff
done
Run Code Online (Sandbox Code Playgroud)
或者,正如Fredrik所建议的那样,使用awk:
lineNumber=10
awk "NR > $lineNumber" |
while read line; do
# do stuff
done
Run Code Online (Sandbox Code Playgroud)
这样的事情怎么样?
while read -r line
do
echo "$line"
done < <(tail -n +number file.name)
Run Code Online (Sandbox Code Playgroud)
它不是POSIX兼容的,但试试你的Bash.当然,在循环中用$ line做你想要的东西.
PS:使用您想要的数字行更改数字,使用文件名更改file.name.
| 归档时间: |
|
| 查看次数: |
27486 次 |
| 最近记录: |