所以我有一个范围,比如说2-4。我有三行:
first
second
third
我需要我的输出是:
2 first
3 second
4 third
我正在 BSD (Mac) awk/sed 上尝试这个,这似乎使它变得更难。
答案1
答案2
正面:
awk '{printf("%s %s\n", FNR+1, $0)}' file
如果要传递参数:
awk -vn=2 '{printf "%s %s\n", n++, $0}' <file
如果您只想生成范围以防文件长于范围:
awk -v s=2 -v e=4 'BEGIN{for(n=s;n<=e;n++)print n}' | paste -d' ' - file
答案3
用纯 bash 脚本?
i=2; cat output.txt | while IFS= read -r line; do
echo "$i $line"
i=$((i+1))
done