ファイルの行をファイル名に入れます。

ファイルの行をファイル名に入れます。

実行可能なスクリプトがあり、hdsentinel入力するとき

./hdsentinel 

端末からハードドライブの状態に関する情報を取得できます。

私が入力したとき:

./hdsentinel >hd.log

ファイル内のすべての情報を取得しましたhd.log

サイトに/home/user/Desktopサンプルファイルがあります。 hd.log上記のファイル名にファイル例の3行目(3行目は192.168.1.1)を入力したいのですが結果はhd192.168.1.1.log。どうすればいいですか?

答え1

これを試してみてください。ここでは、sedを使用してファイル例のn行目(3行目)を印刷し、$(sed '3q;d' <example-file-path>)出力ファイル名に式の結果を使用します。

./hdsentinel > "hd$(sed '3q;d' /home/user/Desktop/example).log"

説明する:

sed 'NUMq;d' file

ここで、NUMは印刷する行番号です。たとえば、sed '3q;d'ファイルはファイルの3行目を印刷します。

NUMq行番号があるとすぐに終了しますNUM

d印刷する代わりに行を削除します。

したがって、qを使用すると、終了時にスクリプトの残りの部分がスキップされ、NUM行を除くすべての行が削除されます。

関連情報