Seq

Unix:將額外的值列列印到文件

  • July 2, 2017

我有一個 .txt 文件 ( new_file.txt),其中包含一列值 (200)。我需要在它旁邊列印另一列,值為 0,1/200,2/200…..1。我該怎麼做?我是新手,所以任何建議都會很棒!

我知道這seq 0 0.005 1 >new_file.txt會將它列印到文件中,但它會覆蓋已經存在的值。我想將這些數字添加為文件中已存在的值旁邊的另一列。

輸入是這樣的:

2.41
2.56 

等等。我需要它看起來像

2.41 0
2.56 0.005

等等。我需要在兩者之間有一個標籤。

seqpaste:_

seq 0 0.005 1 | paste newfile.txt - > newerfile.txt

awk

awk '{$2 = 0.005*(NR-1)} 1' OFS='\t' newfile.txt > newerfile.txt

根據您的版本awk,您可能能夠newfile.txt就地修改。

正如評論中提到的,paste是做你想做的事的最佳選擇。

paste new_file.txt <sequence file>

如果要在執行時生成序列

seq 0 0.005 1 | paste new_file.txt /dev/stdin

範例(對於 5 條記錄new_file.txt

~$ seq 0 0.005 0.020 | paste new_file.txt /dev/stdin
2.41    0.000
2.56    0.005
2.71    0.010
2.86    0.015
3.01    0.020

注意:如果任何文件/命令中有額外的行,則輸出中的相應行將為空白。因此,請確保兩個文件具有相同的行數。

引用自:https://unix.stackexchange.com/questions/374722