[英]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.