linux – 如何从bash中的文本文件中读取第n行?
发布时间:2020-12-14 01:28:34 所属栏目:Linux 来源:网络整理
导读:假设我有一个名为“demo.txt”的文本文件,如下所示: 1 2 3 45 6 7 89 10 11 1213 14 15 16 现在我想读一行,比如第2行,用一个看起来像这样的命令: Line2 = read 2 "demo.txt" 所以当我打印它时: echo "$Line2" 我去拿: 5 6 7 8 我知道如何使用’sed’命令
假设我有一个名为“demo.txt”的文本文件,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 现在我想读一行,比如第2行,用一个看起来像这样的命令: Line2 = read 2 "demo.txt" 所以当我打印它时: echo "$Line2" 我去拿: 5 6 7 8 我知道如何使用’sed’命令从文件中打印第n行,但不知道如何读取它.我也知道’读’命令,但不知道如何使用它来排序某一行. 在此先感谢您的帮助. 解决方法
使用头部和尾部
$head -2 inputFile | tail -1 5 6 7 8 要么 一般化版本 $line=2 $head -"$line" input | tail -1 5 6 7 8 使用sed $sed -n '2 p' input 5 6 7 8 $ sed -n "$line p" input 5 6 7 8 它能做什么? > -n禁止模式空间的正常打印. 编辑 要将输出转换为某个变量,请使用一些命令替换技术. $content=`sed -n "$line p" input` $echo $content 5 6 7 8 要么 $content=$(sed -n "$line p" input) $echo $content 5 6 7 8 获取bash数组的输出 $content= ( $(sed -n "$line p" input) ) $echo ${content[0]} 5 $echo ${content[1]} 6 使用awk 也许awk解决方案可能看起来像 $ awk -v line=$line 'NR==line' input 5 6 7 8 感谢Fredrik Pihl提出的建议. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |