如何一次只打印或显示文本文件中的单词。当我运行脚本时,它仅应一个一个地显示文本文件中的每个单词,而仅显示该单词。
这是我所做的,但是每个单词都显示在单独的行中,但是显示了所有单词:
FS=$'\n'
for j in `cat read`
do
echo "$j"
done
我希望输出看起来像这样:
root@matrix:~> first word ---> this word disappear when second is displayed
root@matrix:~> second word ---> this disappear when third is displayed
root@matrix:~> third word ---> this disappear when fourth is displayed and continues like this to the end of the file!
您可以在脚本中使用sleep
和clear
命令,如下所示:
for word in $(< read)
do
echo "$word"
sleep 1
clear
done
该sleep
命令将延迟指定的时间(以秒为单位)。随着sleep 1
延迟为1秒。您可以通过增加第二个参数来改变更多的时间延迟,或者将少于1秒的延迟改变为低单位。例如sleep .1
1/10秒延迟或sleep .001
1/1000秒延迟等等。
该clear
命令清除终端屏幕。
awk
命令执行此操作:awk '{i=1; while(i<=NF){ print $((i++)); system("sleep 1; clear") }}' read
在中awk
,NF
指定了当前输入记录/行中字段的总数,因此,通过使用变量作为计数器(i
)并对其进行循环,我们将从第1个位置开始打印所有字段(NF
)。然后通过使用该system("sleep 1; clear")
部件,我们告诉您awk
要调用系统命令以使其休眠1秒钟并清除屏幕。
在上面,我们将输入文件逐字显示。如果要逐行显示它IFS=$'\n'
,请在脚本中添加以下内容:
IFS=$'\n'
for word in $(< read)
do
echo "$word"
sleep 1
clear
done
并awk
像这样更改命令:
awk '{ $0; system("sleep 1; clear") }1' read
$0
指定当前行。并且1
on on启用默认awk
的print命令。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句