如何使用 awk、sed 或 grep 将迭代器添加到每一行?
How to add iterator to each line using awk, sed or grep?
我如何使用 grep、sed 或 awk 将迭代器插入到文件的每一行(行)中?
假设我的数据是这样的,csv 格式:
1,2,3,4
1,2,3,4
1,2,3,4
1,2,3,4
.
.
.
1,2,3,4
我想让它看起来像这样,使用 grep、awk 或 sed(或其他任何有效的方法):
[func (func (func 0)) [1 2 3 4]]
[func (func (func 1)) [1 2 3 4]]
[func (func (func 2)) [1 2 3 4]]
.
.
.
[func (func (func N)) [1 2 3 4]]
其中 N
是文件中的行数。所以基本上是将文件的行号插入行本身。
您可以使用 awk
和 NR
变量。
像这样:
awk '{ gsub(/,/, " "); print "[func (func (func "(NR-1)")) ["[=10=]"]]"; }' datafile
纯bash:
while IFS=, read -r a1 a2 a3 a4; do
echo "[func (func (func $((c++)))) [$a1 $a2 $a3 $a4]]"
done < file
这可能对你有用 (GNU sed):
sed = file | sed 'N;s/\(.*\)\n\(.*\)/[func (func (func )) []/'
这会将行号插入输出流 (Stdout),然后使用 sed 的第二次调用将其与其行配对并输出所需的字符串。
我如何使用 grep、sed 或 awk 将迭代器插入到文件的每一行(行)中?
假设我的数据是这样的,csv 格式:
1,2,3,4
1,2,3,4
1,2,3,4
1,2,3,4
.
.
.
1,2,3,4
我想让它看起来像这样,使用 grep、awk 或 sed(或其他任何有效的方法):
[func (func (func 0)) [1 2 3 4]]
[func (func (func 1)) [1 2 3 4]]
[func (func (func 2)) [1 2 3 4]]
.
.
.
[func (func (func N)) [1 2 3 4]]
其中 N
是文件中的行数。所以基本上是将文件的行号插入行本身。
您可以使用 awk
和 NR
变量。
像这样:
awk '{ gsub(/,/, " "); print "[func (func (func "(NR-1)")) ["[=10=]"]]"; }' datafile
纯bash:
while IFS=, read -r a1 a2 a3 a4; do
echo "[func (func (func $((c++)))) [$a1 $a2 $a3 $a4]]"
done < file
这可能对你有用 (GNU sed):
sed = file | sed 'N;s/\(.*\)\n\(.*\)/[func (func (func )) []/'
这会将行号插入输出流 (Stdout),然后使用 sed 的第二次调用将其与其行配对并输出所需的字符串。