循環遍歷文件中的行並將變數遞增到下一行

循環遍歷文件中的行並將變數遞增到下一行

我的文件中有以下內容:這些只是一些時間戳

455860902
868790949
279116188
689905426

範例 - 我想要以下輸出

###########
sed -n '/455860902/,/868790949/p' file
sed -n '/868790949/,/279116188/p' file
sed -n '/279116188/,/689905426/p' file

它需要經歷一個循環,以避免我sed每次都輸入命令。

答案1

使用awk

awk 'prev{ print "sed -n \047/" prev "/,/" $0 "/p\047 file"; }
         { prev=$0 }' infile

答案2

效果很好,但不如以前的答案

la=`awk 'END{print NR}' filename`
co=$(($la - 1))

for i in `sed -n "1,"$co"p" filename`; do awk -v i="$i" '$1 ~ i {getline x;print "sed -n" " "  "/"$0"/,/"x"/p"}' filename; done| sed "s/\//'&/"| sed "s/\/p/\/p'/g"

輸出

sed -n '/455860902/,/868790949/p'
sed -n '/868790949/,/279116188/p'
sed -n '/279116188/,/689905426/p'

相關內容