【发布时间】:2008-12-06 00:38:09
【问题描述】:
我已将一些有价值的信息重定向到一个文本文件中。如何循环执行该文本文件的每一行?
我的想法是将我的文本文件加倍空间,然后使用循环单独执行每一行。我希望当我将文本文件加倍空间时,每个命令字符串都有自己的行。
例如,这个文本文件:
cat /etc/passwd |头-101 |尾 -3 nl /etc/passwd |头-15 | cut -d':' -f1 cat /etc/passwd |剪切 -d':' -f1,5 | tee users.txt nl /etc/passwd |尾-1 |剪切-f1 ls ~/home |荷兰 |尾-1 |剪切-f1 ls -lR / 2>/dev/null |排序 -n -r +4 |头-1
当我加倍空格时应该是这样的:
cat /etc/passwd |头-101 |尾-3
nl /etc/passwd |头-15 |剪切 -d':' -f1
cat /etc/passwd |剪切 -d':' -f1,5 |发球用户.txt
nl /etc/passwd |尾-1 |剪切-f1
ls ~/home |荷兰 |尾-1 |剪切-f1 ls -lR / 2>/dev/null |排序 -n -r +4 |头-1
然后我会使用一个循环来执行每一行。
这是我的脚本:
FILE="$1"
echo "You Entered $FILE"
if [ -f $FILE ]; then
tmp=$(cat $FILE | sed '/./!d' | sed -n '/regex/,/regex/{/regex/d;p}'| sed -n '/---/,+2!p' | sed -n '/#/!p' | sed 's/^[ ]*//' | sed -e\
s/[^:]*:// | sed -n '/==> /!p' | sed -n '/--> /!p' | sed -n '/"lab3.cmd"/,+1!p'\
| sed -n '/======/!p' | sed -n '/regex/!p' | sed -n '/commands are fun/\
!p' | sed -n '/regex/!p')
fi
MyVar=$(echo $tmp > hi.txt)
echo "$MyVar"
这是正确的做法吗?
【问题讨论】: