使用bash脚本读取文件

时间:2011-02-20 12:39:07

标签: bash

我需要使用“Do / While”循环读取文件 如何以字符串形式阅读内容?

这是我的代码:

cat directory/scripts/tv2dbarray.txt | while read line
do
  echo "a line: $line"
done

错误:

test.sh: line 4: syntax error near unexpected token `done'
test.sh: line 4: `done'

5 个答案:

答案 0 :(得分:68)

此处没有理由使用cat - 它不会添加任何功能并产生不必要的过程。

while IFS= read -r line; do
  echo "a line: $line"
done < file

要将文件内容读入变量,请使用

foo=$(<file)

(请注意,这会修剪尾随换行符。)

答案 1 :(得分:28)

cat file | while read line
do
  echo "a line: $line"
done

编辑:

将文件内容导入var use:

foo="`cat file`"

答案 2 :(得分:1)

这应该有效:

file=path/of/file/location/filename.txt

while IFS= read -r varname; do
    printf '%s\n' "$varname"
done < "$file"

答案 3 :(得分:0)

试试吧

while read p
do 
echo $p
done <  directory/scripts/tv2dbarray.txt

答案 4 :(得分:-2)

使用 php

php -r "echo file_get_contents('text.txt');"

或使用烟斗:

php -r "echo stream_get_contents(STDIN);" < text.txt

这也有效,文件被视为html(如果没有php标签!):

php text.txt

要观看交互式更改,就像tail -f一样。 (这里没有节奏,超快......)

php -r "while(true)echo fread(STDIN,'1');" < text.txt