Shell 从ksh读取文本文件时跳过行
我有一个文本文件,里面有一些名字,一行一行的。 我正在通过KornShell(ksh)读取此文件,获取这些名称并在循环中执行一些操作。 为了便于阅读,我想在文本文件中添加一些注释(即,以#开头的行是注释,无需阅读)。 所以,我想读的是那些不是以#符号开头的行 在ksh,我读到如下内容:Shell 从ksh读取文本文件时跳过行,shell,unix,scripting,ksh,Shell,Unix,Scripting,Ksh,我有一个文本文件,里面有一些名字,一行一行的。 我正在通过KornShell(ksh)读取此文件,获取这些名称并在循环中执行一些操作。 为了便于阅读,我想在文本文件中添加一些注释(即,以#开头的行是注释,无需阅读)。 所以,我想读的是那些不是以#符号开头的行 在ksh,我读到如下内容: while read base do --- --- done<file 读取基时 做 --- --- 完成如何(编辑以包含完整的代码片段): 读取基时 做 #跳过评论 [-z“`echo$base |
while read base
do
---
---
done<file
读取基时
做
---
---
完成如何(编辑以包含完整的代码片段):
读取基时
做
#跳过评论
[-z“`echo$base | grep'^#'`”]|继续
#在这里处理剩余的行
完成您可以这样做,例如(read.sh):
#/bin/ksh
读行时
做
[[$line=\\\*]&继续(&C)
回音$线
完成
在何处包含此条件。你能给我硼化物吗?那部分能做什么。。?我想在未启动的线路上执行操作。。在bitcontinue中可以进行扩展就像在任何其他语言中使用continue一样,它将“跳到循环的末尾”,实际上是读取下一行。因此,在我使用echo$line的地方,您可以执行您的操作,因为在这一点上,您知道$line不是以#开头的,双括号只是一个模式匹配的测试操作符(它匹配以哈希开头的所有内容,哈希必须转义,否则它将被解释为脚本中的注释):或在读取行时等效地grep-v'^#'read.sh |;做回显“$line”;完成
while read base
do
# skip comments
[ -z "`echo $base | grep '^#'`" ] || continue
# handle remaining lines here
done<file
#!/bin/ksh
while read line
do
[[ $line = \#* ]] && continue
echo $line
done < read.sh