猿问

在Bash中循环遍历文件的内容

在Bash中循环遍历文件的内容

如何迭代文本文件的每一行巴什?

使用此脚本:

echo "Start!"for p in (peptides.txt)do
    echo "${p}"done

我在屏幕上看到这个输出:

Start!./runPep.sh: line 3: syntax error near unexpected token `('
./runPep.sh: line 3: `for p in (peptides.txt)'

(稍后我想做一些更复杂的事情$p而不仅仅是输出到屏幕上。)


环境变量IS(来自env):

SHELL=/bin/bash

/bin/bash --version产出:

GNU bash, version 3.1.17(1)-release (x86_64-suse-linux-gnu)Copyright (C) 2005 Free Software Foundation, Inc.

cat /proc/version产出:

Linux version 2.6.18.2-34-default (geeko@buildhost) (gcc version 4.1.2 20061115 (prerelease) (SUSE Linux)) #1 SMP Mon Nov 27 11:46:27 UTC 2006

txt文件包含:

RKEKNVQ
IPKKLLQK
QYFHQLEKMNVK
IPKKLLQK
GDLSTALEVAIDCYEK
QYFHQLEKMNVKIPENIYR
RKEKNVQ
VLAKHGKLQDAIN
ILGFMK
LEDVALQILL


四季花海
浏览 1610回答 3
3回答

白板的微信

cat peptides.txt | while read linedo    # do something with $line heredone

守着一只汪

备选案文1a:When循环:一次单行:输入重定向#!/bin/bashfilename='peptides.txt'echo&nbsp;Startwhile&nbsp;read&nbsp;p;&nbsp;do&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$pdone&nbsp;<&nbsp;$filename备选案文1b:When循环:一次一行:打开文件,从文件描述符读取(在本例中为文件描述符#4)。#!/bin/bashfilename='peptides.txt'exec&nbsp;4<$filename echo&nbsp;Startwhile&nbsp;read&nbsp;-u4&nbsp;p&nbsp;;&nbsp;do &nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$pdone备选案文2:for循环:将文件读入单变量并进行解析。这个语法将基于标记之间的任何空白来解析“行”。这仍然有效,因为给定的输入文件行是单字标记。如果每行有多个令牌,则此方法将无法工作。此外,将完整文件读入单个变量对于大型文件来说也不是一个很好的策略。#!/bin/bashfilename='peptides.txt'filelines=`cat&nbsp;$filename`echo&nbsp;Startfor&nbsp;line&nbsp;in&nbsp;$filelines&nbsp;;&nbsp;do &nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$linedone
随时随地看视频慕课网APP
我要回答