Unixスクリプトはファイルを読み取り、各行に1つずつ生成します。

Unixスクリプトはファイルを読み取り、各行に1つずつ生成します。

ファイルがあり、私の仕事はファイルを読み込み、各行ごとに新しいファイルを作成することです。新しく作成されたファイルの名前は、この行の内容から指定する必要があります。

はい

ファイルには次の2行があります。

My name is hello world
My Name is not hello world

私が望むのは、ファイル1にファイル名が行の4番目のフィールドである1つのレコードを持つ必要があることです。

正確にはどういう意味ですか?

最初のファイル名は次のとおりです。

hello

ファイル2には2番目のレコードがあり、ファイル名は行の4つのフィールドでなければなりませんが、そうではありません。

ここも同様です。正確にはどういう意味ですか?

2番目のファイルの名前は次のとおりです。

not

ベストアンサー1

$cat mainfile
My name is hello world
My Name is not hello world

存在するbash

#!/bin/bash
cat mainfile | while IFS= read line ;do 

name=$(echo ${line} | awk '{print $4}')

echo "${line}" >> ${name} 
done

存在するcsh

#!/bin/csh
foreach line ( "`cat mainfile`" )
set name = `echo ${line} | awk '{print $4}'`

    echo "${line}" >> $name
end

基本ファイルのすべての単語のファイルを作成するには

#!/bin/bash
cat mainfile | while IFS= read line ;do

     for word in $line; do

   echo "${line}" >> ${word} 
  done
done

おすすめ記事