我想提示用户切断最后一个'命令以及要剪切的列。我也想用' tr'修复白色空间的所有差异。这是我的代码:
echo -n "What rows and columns would you like to cut: "
read num_int
read num_row
read num_list
last $num_int
cut -f $num_row
tr -d $num_list
当我从命令行运行它时,我得到提示,所以我点击Enter然后输入一个数字来切割。然后我再次点击Enter,我得到一个打印到屏幕的信息列表,但没有突破执行的脚本。有没有更好的方法来设置此脚本?这里有一些关于它回显到屏幕的样本数据:
slater pts/2 78.189.121.247 Sat Sep 1 23:21 - 23:27 (00:05)
slater pts/3 77.189.121.247 Sat Sep 1 23:09 - 23:21 (00:12)
slater pts/2 76.189.121.247 Sat Sep 1 22:59 - 23:09 (00:10)
slater pts/2 74.189.121.247 Sat Sep 1 22:51 - 22:56 (00:05)
pint pts/2 74.189.121.247 Sat Sep 1 22:49 - 22:51 (00:01)
terry pts/2 74-119-247-134.r Sat Sep 1 19:08 - 19:09 (00:00)
答案 0 :(得分:2)
这样做是否符合您的需求?
read -p "What row and column integers would you like to cut >>> " col row
last | awk -v col=$col -v row=$row 'NR==row{print $col}'
答案 1 :(得分:0)
我真的不明白你在这里要做什么。但是我很确定你想把这些命令相互传递,以便它们相互操作输出:
last | cut -f $num_row | tr -d $num_list
last $num_int
可能不会做你想要的。 last
期望用户名作为参数。要获得最后$num_int
行的输出,请尝试tail
(或者head
):
last | tail -n $num_int | cut -f $num_row | tr -d $num_list
tr
命令我特别困惑。你想用它做什么?