簡體   English   中英

bash 腳本 - 僅打印文件中的特定行

[英]bash scripting - print only specific rows in file

我有以下文件(file.txt):

Ex1=-1.397311E+03 WEIGHT=    8.123000E-01
Ex2= 1.952565E+03 WEIGHT=    1.204200E+00
Ex3=-2.737476E+03 WEIGHT=    9.174491E-01
Ex4=-1.703835E+03 WEIGHT=    3.339300E-01
Ey1= 8.098997E+01 WEIGHT=    1.000000E+00
Ey2= 1.812711E+03 WEIGHT=    1.977300E+00
Ex5= 1.654618E+03 WEIGHT=    6.365700E-02
Ey3=-5.958670E+02 WEIGHT=    1.480850E+00
Ey4= 0.000000E+00 WEIGHT=    0.000000E+00
Ey5= 0.000000E+00 WEIGHT=    1.000000E+00
Ex6=-5.413463E+03 WEIGHT=    3.998912E-02
Ex7= 5.537537E+02 WEIGHT=    1.583826E+00

我想打印以 Ex1、Ex2、Ex3、Ex4、Ex5、Ex6、Ex7 開頭的行的第一列和第二列。 我嘗試使用 sed 命令來做到這一點,但我在這方面有很多問題。 你可以幫幫我嗎?

尚不完全清楚您所說的“列”是什么意思,但我懷疑您想要以下之一:

$ awk '/Ex[1-7]/{print $1, $2}' FS='[= ]*' OFS== file.txt
Ex1=-1.397311E+03
Ex2=1.952565E+03
Ex3=-2.737476E+03
Ex4=-1.703835E+03
Ex5=1.654618E+03
Ex6=-5.413463E+03
Ex7=5.537537E+02
$ awk '/Ex[1-7]/{print $2, $4}' FS='[= ]*' file.txt
-1.397311E+03 8.123000E-01
1.952565E+03 1.204200E+00
-2.737476E+03 9.174491E-01
-1.703835E+03 3.339300E-01
1.654618E+03 6.365700E-02
-5.413463E+03 3.998912E-02
5.537537E+02 1.583826E+00

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM