これまで私はこのコードを持っています...
for i in {1..200}; do sed '$i,0!d' md5list.txt | grep -a ": "; done
basename
上記のコードの各繰り返しを次のように実行したいと思います。
basename $(for i in {1..200}; do sed '$i,0!d' md5list.txt | grep -a ": "; done)
どうすればいいですか?同様の質問を見つけることができるキーワードは何ですか?
答え1
出力をxargs
またはにパイプできますwhile
。
for i in ...; done | xargs -n 1 basename
または
for i in ...; done | while read filename; do basename $filename; done
どちらもほぼ同じです。 Xargsはより高速ですが、柔軟性が低下します。マニュアルページxargs(1)
またはマニュアルページを読むことができますbash
。
ちなみに、あなたのsed
声明はおそらくあなたが望む何もしません。変数('$i'
代わりに"$i"
)を参照しているので、sedはこれを「最後の行に新しい行を挿入する」、0!d」と解釈しsed -n "${i}p" md5list.txt
ます-n
。p
。