无法找到解决方案,尽管之前已经提出过这个问题的数千种变体。 我在目录中有几个文本文件。我想在每个文件的开头添加一列。第一个文件的添加列是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
答案 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变量不会扩展为''
。