Bashスクリプトのファイルの2行目でループを実行する

Bashスクリプトのファイルの2行目でループを実行する

forループスクリプトへの入力として、次のファイルの内容を使用したいと思います。 2行目からデータベースからコンテンツを取得するために使用されるIDがあります。

cat abc.txt 
id
27
27
27
27
23

答え1

これは次のように簡単にすることができます。

{ read -r; while read -r line; do echo "$line"; done; } < abc.txt

ここでのアイデア{は、コマンドをグループ化することです。を使用すると、read -r最初の行をスキップします!

答え2

sedprocの前にフィルタリングできます。

たとえば、最初の行を削除cat abc.txtできます。sed 1d abc.txt

答え3

タイトルが最初の行にない場合や空白の行がある場合にも機能します。

awk '!/^(id| *)$/{print$0}' file | while read line; do
    something $line
done

私はwhilefor

つまり、これはあなたのforループです。

for line in $(awk '!/^id$/{print$0}' file); do
    something $line
done

答え4

ファイルが大きい場合はお勧めできません。

次のように使用できます。

 for i in $(sed -e '1d' abc.txt)
 do
   something
 done

関連情報