当我想对文件中的每一行进行某些操作时,我通常会写
cat my_file | while read a
do
gzip "$a"
done
gzip 只是一个例子,它可以是任何东西。
我想知道的是,除了 之外,是否还有其他方法可以获取这些线条cat file | while read
?
答案1
您不需要使用cat
:
while read line; do
echo "$line"
done < my_file
但我不认为有更简单的方法。
答案2
我认为最简单的方法是使用xargs
,例如,
xargs -L1 gzip < my_file
-L1
/选项--max-lines=1
指示xargs
一次处理一行输入。你可以看看GNU并行也非常相似,xargs
但在某些情况下更强大。
答案3
IFS="\n\b"; for i in $MYROWOFCONTENT; do echo $i; done;