我有一个输入文件: add.txt:
\\91191191111,us-west-2
293jsa3jj3nj3
4535jn4545jnj
2324jnjnnjk54
5jnj54jnk3533
\\00012985868,us-west-2
2232sddmakma
231900aasa00
324km2kmk433
\\9292011323,us-west-1
\\9203290324,us-west-2
cfdcfdc23213
我想要实现的是:
\\91191191111,us-west-2,293jsa3jj3nj3
\\91191191111,us-west-2,4535jn4545jnj
\\91191191111,us-west-2,2324jnjnnjk54
\\91191191111,us-west-2,5jnj54jnk3533
\\00012985868,us-west-2,2232sddmakma
..
..
.
请让我知道我该怎么做?
答案 0 :(得分:0)
一个快速,粗糙的开始-
while read line
do case "$line" in
*,*) key="$line";;
*) echo "\\$key,$line";;
esac
done < add.txt
产生
\\91191191111,us-west-2,293jsa3jj3nj3
\\91191191111,us-west-2,4535jn4545jnj
\\91191191111,us-west-2,2324jnjnnjk54
\\91191191111,us-west-2,5jnj54jnk3533
\\00012985868,us-west-2,2232sddmakma
\\00012985868,us-west-2,231900aasa00
\\00012985868,us-west-2,324km2kmk433
\\9203290324,us-west-2,cfdcfdc23213
它忽略\\9292011323,us-west-1
,因为它没有后面的数据行。
具有类似逻辑的awk
在大型数据文件上会更快。
即使您没有行也要打印行,请添加并检查更多标志。