catgrep過濾某行數據
① shell grep 的結果只取第一行
可以使用head -1 命令來只取到的數據的第一行。
例如一個文本文檔a.txt內容是:
北京是我們的首都
北京天安門坐落在中華人民共和國首都北京市的中心
我在北京天安門廣場吃炸雞
使用命令 cat a.txt |grep 北京 | head -n 1 可以只取到第一行的數據北京。
(1)catgrep過濾某行數據擴展閱讀
Linux中head命令詳解:
head命令與tail命令用法相似,head命令用於查看文檔的開始指定數量的字元塊,默認顯示文檔的前 10 行,如果給定的文件不止一個,則在顯示的每個文件前面加一個文件名標題。
1、grep命令用法格式
head 【參數】【文件】
2、命令選項
-c, --bytes=[-]K k,顯示文檔開始的前k個位元組,-k,不顯示文檔結尾的最後 k 個位元組
-n, --lines=[-]K k,顯示文檔開始的前k行,-k,不顯示文檔結尾的最後 k 行
-q, --quiet, --silent 不顯示包含給定文件名的文件頭
-v, --verbose 總是顯示包含給定文件名的文件頭
--help 顯示此幫助信息並退出
--version 顯示版本信息並退出
3、實例
#顯示前5行
head -n 5 head.txt
#顯示前5個位元組
head -c 5 head.txt
② Linux提取文件中特定的某些行的命令
sed -n -e '/you-y[0-9]\{3\}-[5|3]m/p' file >> newfile
grep 'you-y[0-9]\{3\}-[5|3]m' file >> newfile
gawk '/you-y[0-9][0-9][0-9]-[5|3]m/' file >> newfile
awk --posix '/you-y[0-9]{3}-[3|5]m/' file >> newfile
③ 使用Shell過濾第N行裡面帶有某個數據的內容
sh-3.2# cat b
a-b b-c c-d d-e - e-f
a-b b-c c-d d-e af e-f
a-c b-c c-d d-f e-f a-c
a-d b-d c-e e-f f-c c-a
sh-3.2# awk '{if($5~"-")print $0}' b
a-b b-c c-d d-e - e-f
a-c b-c c-d d-f e-f a-c
a-d b-d c-e e-f f-c c-a
④ linux中如何提取文件中特定的行
|cat file1 file2 |來sort|uniq -c |grep -v " 2 "|cut -d" " -f 2-
如果你的文件每源行都是維一的可以這樣處理.
grep -v 後面的 " 2 " 可以按著你的實際情況前面多加幾個空格.
⑤ 利用shell腳本如何提取一個文件中某一特定行和下面若干行的內容
1、在linux目錄/root下建立抄一個txt文件襲,內容如下,使用|豎線分割,作為我們的實驗數據樣本。
⑥ 如何使用grep篩選出含有A或者B字元的行
me@ubuntu:grep$cattest.txt
aa123
AA123
AABB123
BB123
me@ubuntu:grep$grep-e'AA'-e'BB'./test.txt
AA123
AABB123
BB123
⑦ .cat /etc/smb.conf 文件時 如何將 # (井號注釋行)和 ; (分號注釋行)過濾掉
^cat smb.conf |grep -v "#" |grep -v "^;"|grep -v "^$"
第一個grep是過濾帶#號的行,第二專個grep過濾以;號為開頭屬的行,第三個grep過濾掉所有的空行。
或者 grep -v "#" /etc/samba/smb.conf |grep -v "^;" | grep -v "^$"
⑧ grep怎麼取出某文本裡面的兩行: 比如:文本的內容為
|用grep-E就可以搞定,如下是虛擬機上的驗證結果
[root@專localhost Desktop]# echo "<a> sajfasjf" >123.txt
[root@localhost Desktop]# echo "<b> yedrgsd" >>123.txt
[root@localhost Desktop]# echo "<c> jfamfoias" >>123.txt
[root@localhost Desktop]# echo "<d> 1242353425" >>123.txt
[root@localhost Desktop]# cat 123.txt
<a> sajfasjf
<b> yedrgsd
<c> jfamfoias
<d> 1242353425
[root@localhost Desktop]# grep -E '<a>|屬<b>' 123.txt >>temp.txt
[root@localhost Desktop]# cat temp.txt
<a> sajfasjf
<b> yedrgsd
[root@localhost Desktop]#
⑨ 用grep怎麼過濾出文本中包含23個tab的行
不知道你是想實現什麼目的,如果你是想只顯示配置文件中的以 # 號開頭的行,那就使用內 # grep ^# filename 如果是想顯容示除 # 號開頭的行的話呢,只需加個參數-v (-v 表示相反的過濾)就行了 # grep -v ^# filename
⑩ linux用grep在文件中查找字元串並顯示字元串在文件中的行號
grep -niR '想要查找的字元' xxx
註:n,顯示行號R,查找所有文件包含子目錄i,忽略大小寫 最後的「xxx」表示想要查找的文件名