貴重な情報をテキスト ファイルにリダイレクトしました。そのテキスト ファイルの各行をループで実行するにはどうすればよいですか?
私が考えているのは、テキスト ファイルのスペースを 2 倍にし、ループを使用して各行を個別に実行することです。テキストファイルをダブルスペースすると、コマンドのすべての文字列が独自の行になることを願っています。
たとえば、次のテキスト ファイルです。
猫 /etc/passwd | ヘッド-101 | テール -3 nl /etc/passwd | ヘッド-15 | カット -d':' -f1 猫 /etc/passwd | カット -d':' -f1,5 | ティー users.txt nl /etc/passwd | テール -1 | カット -f1 ls ~/ホーム | nl | テール -1 | カット -f1 ls -lR / 2>/dev/null | 並べ替え -n -r +4 | 頭-1
スペースを2倍にすると、次のようになります。
猫 /etc/passwd | ヘッド-101 | テール -3
nl /etc/passwd | ヘッド-15 | カット -d':' -f1
猫 /etc/passwd | カット -d':' -f1,5 | ティー users.txt
nl /etc/passwd | テール -1 | カット -f1
ls ~/ホーム | nl | テール -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"
これは正しい方法ですか?