如何将特定列添加到Linux中的目录中的所有文本文件?

时间:2016-11-06 15:14:29

标签: linux

无法找到解决方案,尽管之前已经提出过这个问题的数千种变体。  我在目录中有几个文本文件。我想在每个文件的开头添加一列。第一个文件的添加列是0的列,第二个文件的列是1的列,第三个文件的列是2的列等。

那么,如何转变:

   0 2 3 2  
   3 3 3 1
   4 3 4 2

到此:

0 0 2 3 2 
0 3 3 3 1
0 4 3 4 2

和此:

 2 3 4 3
 2 3 3 5
 5 4 1 2

到此:

1 2 3 4 3 
1 2 3 3 5 
1 5 4 1 2

在循环中?

我尝试了以下内容但没有取得任何成功:

#!/bin/bash
path=/prosjekt/tvs/QSexpt1_16K

jj=0
for file in "$path"/*.lsf;
do

awk '{$1=$(($jj)); print}' $file >> qq.txt
$jj=$(($jj+1))

done

1 个答案:

答案 0 :(得分:1)

试试这个:

#!/bin/bash
path=/prosjekt/tvs/QSexpt1_16K

jj=0;
for file in "$path"/*.lsf; do
  awk "{printf \"$jj\"; print}" "$file" >> qq.txt
  jj=$(($jj+1))
done;

您尝试的问题是:$jj=$(($jj+1)) - 您需要在没有$的情况下分配变量; bash变量不会扩展为''