當前位置:首頁 » 文件管理 » sed指令可以輸出文件指定的列
擴展閱讀
教官照片可以打上網嗎 2025-02-07 12:44:26
領袖照片可以合影嗎 2025-02-07 12:36:58

sed指令可以輸出文件指定的列

發布時間: 2022-03-06 21:54:55

1. 如何把sed的輸出,作為其他命令的輸入

可以使用"|"(管道)符號
sed -n '1p' | awk "{print $0}"
意思就是將一個文件的第一行列印的輸出結果作為awk的輸入

2. linux 定向輸出內容到文件指定行

重定向只有追加或者覆蓋。。。

3. 利用shell腳本如何提取一個文件中某一特定行和下面若干行的內容

1、在linux目錄/root下建立一個txt文件,內容如下,使用|豎線分割,作為我們的實驗數據樣本。

4. sed命令想在第3列和第4列之間差入2列

sed-i's/3,/&7,8,/'file.unl

&就表示引用前面正則匹配到的內容,這里就代表 "3,"

用awk的話無法直接修改文件,只能存為臨時文件,然後再通過mv命令覆蓋原文件。

5. linux命令怎麼顯示文件某一行或幾行內容

sed-n4,8pfile#列印file中的4-8行
sed-n4pfile#列印file中的第4行

6. sed或者cat命令怎樣列印指定行比如第2 4 5 行

sed-n'2p;4,5p'InputFile

n,m 表示 n 到m行,這里用 4p;5p 也行。

InputFile 是輸入文件


只用 cat 不能實現,倒是用 cut可以方便實現

cut-d$'
'-f2,4-5hello.c

注意連續行用的是 4-5。

7. linux指令 sed指令怎麼選擇列

首先我這邊先建一個字母大小轉換的腳本test2.sh,內容如下:

先介紹些sed -n的應用:
sed命令中p能實現列印匹配行的功能。我們可以實際看下sed命令帶-n和不帶-n情況下有什麼不同。
sed -n "1p" test2.sh:帶-n選項的話,只列印test2.sh腳本第一行匹配行。
sed "1p" test2.sh:不帶-n的話,不僅列印第一行匹配行,還列印輸出test2.sh腳本的全部內容。

sed -n還可以列印文件的范圍,比如列印test2.sh腳本的前兩行,我們就可以執行以下命令:sed -n "1,2p" test2.sh,就可以直接列印前兩行。
sed命令可以列印匹配模式行,比如列印test2.sh腳本匹配tr的行,就可以執行以下命令:
sed -n /tr/p test2.sh。
remark:如果不帶-n的話,除了列印匹配行外,還會列印腳本的全部內容。

sed -e的應用。只有當sed命令傳遞多個編輯命令式,才會使用到-e。比如:我想列印/tr/匹配行,並且列印匹配行所在的行號,此時存在多個sed參數,就要用到-e了。
sed -n -e /tr/p -e /tr/= test2.sh
每個參數前都要帶上-e:

sed a\追加命令,命令格式為:sed 』指定地址a\追加內容『 目標文件
這個追加內容在匹配行的下一行,只會輸出到標准輸出,原文件內容是不變的,例如在test2.sh腳本的/tr/所在的匹配行的下一行添加「#hello」內容,可需要執行:
sed '/tr/a\#hello' test2.sh
一定不要忘記單引號.
還有一個sed i\的追加命令,命令格式為:sed 』指定地址i\追加內容『 目標文件,跟a\不同,i\追加是在指定位置的上一行追加命令

sed命令中還有一些特殊的匹配,比如元字元匹配,此時需要用轉義符"\"屏蔽其特殊意義。
比如:sed -n 『/\=/p』test2.sh,則列印輸出tr一行。
$在正則表達式中表示尾行,執行sed -n 『$p』 test2.sh則列印腳本尾行。
!表示取反,可以看以下兩個例子

sed中可以使用關鍵字來匹配行,列印我們所需要的內容,比如,我希望列印test2.sh第2,3行,可以執行:sed -n "2,3P" test2.sh,也可以執行sed -n "/tr/,/exit/p" test2.sh

sed c\的應用,命令格式為:sed 』指定地址c\替換內容『 目標文件。比如,#hello,替換test2.sh腳本的tr這行,可以執行命令:sed '/tr/c\#hello' test2.sh

sed刪除d應用:比如我想刪除test2.sh的第2行,可以執行以下命令:sed "2d" test2.sh或者sed /tr/d test2.sh

sed替換s應用:格式 sed s/被替換的字元/替換字元/[替換選項]
比如,我想把test2.sh中tr替換成大寫的tr,則可以執行以下命令:sed 『s/tr/TR/』test2.sh,則把腳本中的tr替換成TR,完後輸出全部內容。
如果僅想列印替換所在行,則需要試用使用-n和-p:sed -n 『s/tr/TR/p』 test2.sh:把腳本中的tr替換成TR,然後列印tr所在的行.
如果腳本中存在好幾個tr,並且每一行也存在多個tr,如果執行以上命令的話,只會更改每一行的第一個出現的tr,如果要全部把tr轉後為TR,則需要添加G參數:
sed -n 』S/tr/TR/pg』test2.sh。
w參數是定向輸入參數,比如要把上述的變更定向輸出到test1.txt中,則需要執行:
sed -n 』s/tr/TR/pgw test1.txt』 test2.sh。
也可以直接把選定的匹配內容寫到另一個文本中,比如想把test2.sh中tr這一樣寫到test2.txt中,執行:sed -n 』/tr/w test2.txt『 test2.sh

8. 如何用shell提取文件中指定的字元串

shell讀取文件的指定行字元串
在得到數行輸出時,需要得到指定行的欄位,可以使用該指令。
sed -n Np 文件名
如sed -n 2p xxx 輸出結果即為第二行的內容
在shell腳本中有時需要按行讀出文件的內容,比如文件中每一行的命令等。
假設存在文件filename,需要從中按行讀取內容,並在每行的開頭增加字元串command,命令如下
cat filename | while read line; do echo "command $line"; done!

9. 如何實現sed命令結果只輸出指定次數的匹配

鄙人愚鈍,只有這種辦法啦:

sed-nr'/*{5}/{h;:a;n;H;/*{5}/!ba;g;p;q}'file.txt


說實話,沒太明白你給出的sed命令中,// 這個地址匹配是怎麼工作的。

10. shell中,sed可以寫入前面的數據流嗎例如,cat一個文件,可不可以用sed把cat的內容寫入到指定文件

用sed的a命令(append,附加到文件的指定行後)或 i命令(insert,插入到指定行前)

str=`cat file1 | sed -n '3p'`
line=3 # file2的指定行
sed -i "${line} a$str" file2