Text-Processing
使用“seq”,如果一列等於5,繼續另一列
例如,我想從最右邊的列開始,一旦達到 5,從第二遠的列繼續計數。
0.0.0.0 0.0.0.1 0.0.0.2 0.0.0.3 0.0.0.4 0.0.0.5 0.0.1.5 0.0.2.5 0.0.3.5 0.0.4.5 0.0.5.5 0.1.5.5 0.2.5.5 0.3.5.5 0.4.5.5 0.5.5.5 1.5.5.5 2.5.5.5 3.5.5.5 4.5.5.5 5.5.5.5
到目前為止,我正在考慮使用:
for i in $(seq 0 5); do echo "0.0.0.$i"; done
一次
i == 5
,然後設置好i=0
,並將回波移動到第三個位置。
使用循環:
{ for i in $(seq 0 5); do echo "0.0.0.$i" ; done; for j in $(seq 1 5); do echo "0.0.$j.$i" ; done; for k in $(seq 1 5); do echo "0.$k.$j.$i" ; done; for l in $(seq 1 5); do echo "$l.$k.$j.$i"; done; }
使用
awk
和更靈活地增加單行輸入的重複時間以及可調整的欄位數量:awk -F"." -v OFS="." -v repeat=5 ' { print $0; for(c=NF; c>=1; c--){ for (i=1; i<=repeat; i++) { $c=i ; print $0; }; }; }' <<<'0.0.0.0'