我有一列,我想重複多次。awk重複n次列的值
如 比如我想下面列
1
2
3
4
5
重複n次,成爲
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
.
.
.
etc
這可能嗎?
我有一列,我想重複多次。awk重複n次列的值
如 比如我想下面列
1
2
3
4
5
重複n次,成爲
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
.
.
.
etc
這可能嗎?
替換3的n
和$1
與列的任何值要打印:
$ for i in {1..3}; do awk '{print $1}' file; done
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
你可以只用awk
做,但你必須存儲在內存中的整個文件:
$ awk '{a[NR]=$1}END{for(i=1;i<=3;i++)for(j=1;j<=NR;j++)print a[j]}' file
這是使用shell構造的場合之一,實際上是有意義的。
awk -v n=7 '{s = s $1 ORS} END{for (i=1;i<=n;i++) printf "%s", s}' file
將n
設置爲您喜歡的任何數字。
或者,GNU AWK:
awk -v n=7 -v RS='\0' -v ORS= 'END{for (i=1;i<=n;i++) print}' file
第二種方法很聰明,但是假設文件只包含一列*(實際上可能是這種情況,而OP的描述很差)。* –
@sudo_O是的,我並沒有對這個問題進行大量的思考但我完全期待OP的接下來的幾個迴應是「哦,但我的投入並不真的看起來像那樣......」。 –
另外'貓file'代替'awk'命令。 **編輯**:對不起,他談論專欄,然後'awk'更好。 – Birei
@Birei我認爲,當OP要求打印一列時,它們表示文件中的1列,即有許多「awk」可以被「cut」替代,而不是「cat」。如果當然文件只包含一個列,那麼'cat'是一個更好的選擇。 –