我有两个问题。第一个是有时当我在Unix中编码并且我输入一个命令并且我做错了我得到一个没有我的提示的新行,无论我输入什么,在我退出并重新进入之前没有任何反应。有谁知道为什么会这样?
其次,
我有一个文件,包含:filename space 数据 我需要获取数据,我听说我应该使用awk或sed,但我不知道该怎么做。欢迎任何帮助。
答案 0 :(得分:2)
第一个问题:
输入echo "
即可。 Unix支持多行命令。
示例:
echo "
is a multi-line
command"
输入"
并输入以终止。
第二个问题:
这是一个很好的AWK教程的链接:Awk - A Tutorial and Introduction
基本上,你使用
awk '{ print "echo " $2 }' filename | sh
例如,回显所有数据。
$2
访问每行的第二个信息块(块是按空格分隔的。)
print "echo " $2
会导致awk输出echo data
。
最后,你管道到sh
来执行awk输出的命令。
答案 1 :(得分:2)
丹尼斯已经很好地回答了你的第一个问题。 (注意:请一次只提出一个问题!)
对于你的第二个问题,它可以更简单地完成。
awk '{ print $2 }' yourfile
默认情况下,awk使用space作为列分隔符,因此这只是告诉awk打印出第二列。如果您希望将输出发送到新文件,那么只需执行以下操作:
awk '{ print $2 }' yourfile > newfile