11
我正在循環遍歷文件中的行。我只需要跳過以「#」開頭的行。 我該怎麼做?bash循環跳過註釋行
#!/bin/sh
while read line; do
if ["$line doesn't start with #"];then
echo "line";
fi
done < /tmp/myfile
感謝您的幫助!
我正在循環遍歷文件中的行。我只需要跳過以「#」開頭的行。 我該怎麼做?bash循環跳過註釋行
#!/bin/sh
while read line; do
if ["$line doesn't start with #"];then
echo "line";
fi
done < /tmp/myfile
感謝您的幫助!
while read line; do
case "$line" in \#*) continue ;; esac
...
done < /tmp/my/input
坦率地說,然而,它往往是更清晰的轉向grep
:
grep -v '^#' < /tmp/myfile | { while read line; ...; done; }
你也可以做一些與'expr'或後綴去除(例如,'[-z「$ {太聰明行%%#*}「]'),但我認爲這些可能會比'case'選項同樣或更少。 – pilcrow
也可以使用'grep -v'^ \ s *#' tmp/myfile'來代替空格(僅)在'#'前面的行,這與'case'解決方案一致,因爲'read '去掉前導和尾隨的空白。 – mklement0
如果[[$ line =〜^#]];則另一個選項(如果某人想要避免使用'grep')可能是'然後繼續; fi'。 –