① shell grep 的結果只取第一行
可以使用head -1 命令來只取grep到的數據的第一行。
例如一個文本文檔a.txt內容是:
北京是我們的首都
北京天安門坐落在中華人民共和國首都北京市的中心
我在北京天安門廣場吃炸雞
使用命令 cat a.txt |grep 北京 | head -n 1 可以只取到第一行的數據北京。
(1)linuxshell讀取指定行擴展閱讀
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編寫一個shell腳本 比如有20行~輸入第20行 就提取15到19行的內容~怎麼解~謝謝大神指導
#!/bin/sh
read-p"Inputlinenum:"line
letend=line-1
sed-n"15,${end}p"file.txt
我理解你的意思抄是根據你輸入的行數從一個已存在的文件中提取內容。
腳本中假設此文件為file.txt,位於腳本同目錄下。
③ linux shell 如何讀取文件特定位置的數據
題主你好,
測試所用的文本文件t1內容如下:
=====
希望可以幫到題主, 歡迎追問.
④ 何如利用linux shell 腳本實現從不同文件中提取某一列或多列組成新文件
樓主可以用cut命令實現。
我先編輯了兩個文件a,b,內容如下
aaa:bbb:ccc
ddd:eee:fff
b文件內容如下:
AAA:BBB:CCC
DDD:EEE:FFF
如果想把a,b中第1,3欄位提取出來輸出到c文件中,則可這樣實現:
cat a b | cut -d ':' -f 1,3 > c
(解釋:-d 後接分隔符,這里為冒號,也可以為其他的,看你的具體文件; -f 依據-d分隔符將得到的數個欄位的第幾欄位提取出來,這里是提取第1,3欄位)
運行結果:(c文件里的內容)
aaa:ccc
ddd:fff
AAA:CCC
DDD:FFF
當然這里有一個限制就是要好統一的分隔符「:」,這是這個命令的不足之處。
肯定還會有其他好的方法,不過我目前就只知道這么多了。
⑤ Linux shell 讀取文本中某幾行數據並輸出成新文件
# for file in `ls abc*.xml`;do sed -n -e '1,10p' -e '50,60p' $file > ${file}_new;done