假设在linux中有一个文件,它的行用空格分隔。
例如:
This is linux file
This is linux text
This is linux file 1
This is linux file 3
现在我只想打印那些在文件行中有第5列的行。在本例中,我的输出应该是第3行和第4行(其中1和3作为第5列)
做这件事最好的方法是什么?
我有一个针对文件运行的脚本,它接受用户的参数,并通过grep和awk发送以获得所需的列。它将返回多行。我想要做的是通过grep\awk的输出读取(或类似的东西),并通过另一个脚本(./lookup)运行它。我的问题是如何循环每一行,并通过脚本中的脚本运行该行上的内容。希望这是有意义的,我对脚本和linux还不熟悉。
#!/bin/sh
x=$(grep "$*" "$c"|awk '{print $6}')
while read LINE
do
./lookup $x
done
这似乎是可行的,但只适用于输出的第一行。它还要求我按enter
假设我有以下两个文件,其中有这样的条目(number、IP和User):
30000 11.11.11.11 Dalvik/2.1.0 Linux
10000 22.22.22.22 GetintentCrawler getintent.com
5000 33.33.33.33 Mozilla/5.0 X11; Linux i686 AppleWebKit/537.36 KHTML, like Gecko Chrome/43.0.2357.130 Safari/537.36
3000 44.44.44.44 Mozilla/5.0 Macintosh; Intel Mac OS X 10_
我有一个带有标题的文件,用@blabla指定-不同的文件有不同数量的标题行,但它们都用@符号指定标题行。
也就是说,
@HI this is header line 1
@Bye this is header line 2
2 210 hi 1300 hl df de
9 179 hi 110 hl df de
2 190 hi 1310 hl df de
9 134 hi 190 hl df de
在标头之后,文件以制表符分隔。
任何人都知道在linux中对此文件进行排序的一种快速/简单的方法(可能使用sort命令)。
我想按第一列(然后是第四列)排序,但在排序后的版本中保留标题作为标题。