我想從bash文件的所有偶數行中刪除前X個字符和最後Y個字符。bash-修剪txt文件中的偶數行
輸入:
1
AABBBBBCCC
2
GKDDABC
設X = 2和Y = 3:
1
BBBBB
2
DD
我想從bash文件的所有偶數行中刪除前X個字符和最後Y個字符。bash-修剪txt文件中的偶數行
輸入:
1
AABBBBBCCC
2
GKDDABC
設X = 2和Y = 3:
1
BBBBB
2
DD
使用awk
:
$ awk -v x=2 -v y=3 '0==NR%2 {$0=substr($0,x+1,length($0)-y-x)} 1' file
1
BBBBB
2
DD
工作原理:
-v x=2 -v y=3
的-v
選項定義我們的兩個變量,x
和y
。
0==NR%2 {$0=substr($0,x+1,length($0)-y-x)}
NR是行計數器。當0 == NR%2
,我們在一個偶數行,我們從開頭刪除x
個字符,從最後刪除y
。在awk
,$0
是整條線。我們用位於x+1
的子字符串替換,長度爲length($0)-y-x
。
1
這是打印行神祕的簡寫。
羚SED具有~
步驟地址運算符。 2~2
的意思是「從第2行開始,每隔第二行匹配一次」。
x=2
y=3
sed "2~2{s/^.\{$x\}//;s/.\{$y\}$//}" input
perl -pE '$_=substr($_,'$x',-'$y')."\n" unless $. %2'
這可能會爲你工作(GNU SED):如果你想參數
sed -r 'n;s/^.{2}(.*).{3}$/\1/' file
或:
x=2 y=3
sed -r "n;s/^.{$x}(.*).{$y}$/\1/" file
凡n
打印奇數行中的偶數行繪圖替代命令。