簡體   English   中英

使用 Linux 多次重復每一行

[英]Repeat each line multiple times by using Linux

我有 1 個包含一些數據的文件。 喜歡

我的文件:

1 3 a
4 8 b
9 14 c

輸出文件:

a
a
b
b
b
b
c
c
c
c
c

我試圖多次重復每一行(3-1 = 2、8-4 =4、14-9 = 5)。 我正在綁定這個命令:

while read i; do seq 1 2| xargs -i -- echo $i;done < my_file.txt 

但它對所有行重復 2 次。 我想將每一行重復 N 次。 可能嗎? 如果可以,請給我一些建議。

提前致謝。

將每一行讀入 3 個變量,並使用前兩個變量作為重復的范圍。

while read -r start end char; do
    for ((i = start; i < end; i++)); do
        echo "$char"
    done
done < my_file.txt

使用 awk :

$ awk '{for(i=1;i<=$2-$1;i++)print $3}' file

Output:

a
a
b
b
b
b
c
c
c
c
c

如果是一個選項:

perl -ne '@A=split;print "$A[2]\n" x ($A[1]-$A[0])' my_file.txt

對於每一行,它將 s split為空格, @A是保存該結果的數組。

然后它打印數組中的第三個元素( $A[2] )+一個換行符,如果您將第 2 列中的值減去第 1 列中的值,則重復( x )次數。

暫無
暫無

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

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