【发布时间】:2012-04-10 12:05:02
【问题描述】:
我正在尝试编写一个脚本来读取文本文件并将每一行保存到一个字符串中。我还希望脚本跳过任何以井号开头的行。有什么建议吗?
【问题讨论】:
-
如果有一百万行怎么办..你会在一百万个字符串中寻找吗?
-
不,我不会去寻找它们,因为不会有一百万行。我也说过,一个字符串,就像一个字符串。
我正在尝试编写一个脚本来读取文本文件并将每一行保存到一个字符串中。我还希望脚本跳过任何以井号开头的行。有什么建议吗?
【问题讨论】:
您不应将跳线留给ksh。例如。这样做:
grep -v '^#' INPUTFILE | while IFS="" read line ; do echo $line ; done
而不是 echo 部分,随心所欲。
或者如果ksh 不支持这种语法:
grep -v '^#' INPUTFILE > tmpfile
while IFS="" read line ; do echo $line ; done < tmpfile
rm tmpfile
【讨论】:
while read -r line; do
[[ "$line" = *( )#* ]] && continue
# do something with "$line"
done < filename
在 ksh 手册页中查找“文件名模式”或“文件名生成”。
【讨论】: