Seq
Unix:將額外的值列列印到文件
我有一個 .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
等等。我需要在兩者之間有一個標籤。
seq
和paste
:_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
注意:如果任何文件/命令中有額外的行,則輸出中的相應行將為空白。因此,請確保兩個文件具有相同的行數。