0

特定のタグに基づいてファイルを読み取り、そこから情報を抽出したいと考えています。例えば ​​:

SCRIPT_NAME:mySimpleShell.sh

This is a simple shell. I would like to have this as
Description. I also want to create a txt file our of this.

SCRIPT_NAME:myComplexShell.sh

This is a complex shell. I would like to have this as
Description. I also want to create a txt file our of this.

したがって、このファイルをシェル スクリプトに渡すと、シェルはそれを 1 行ずつ読み取り、SCRIPT_NAME に到達すると、それを抽出して $FILE_NAME に保存し、ディスク上のファイルに $FILE_NAME で説明を書き込み始めます。 .txt 名。そして、ファイルの終わりに達するまでそれを行います。SCRIPT_NAME タグが 3 つある場合、3 つの記述ファイルが作成されます。

事前に私を助けてくれてありがとう:)

4

2 に答える 2

0

whileループを使用して行を読み取ります。正規表現を使用して、行にあるかどうかを確認し、ある場合SCRIPT_NAMEはファイル名を抽出します。これを以下に示します。

#! /bin/bash
while IFS= read -r line
do
    if [[ $line =~ SCRIPT_NAME:(.*$) ]]
    then
        FILENAME="${BASH_REMATCH[1]}"
        echo "Writing to $FILENAME.txt"
    else
        echo "$line" >> "$FILENAME.txt"
    fi
done < inputFile
于 2012-12-13T16:32:02.137 に答える
0
#!/bin/sh

awk '/^SCRIPT_NAME:/ { split( $0, a, ":" ); name=a[2]; next }
    name { print > name ".txt" }' ${1?No input file specified}
于 2012-12-13T21:28:04.197 に答える