我的unix框中有一个文件,数据如下所示
Output-1
========
abc
x.sh
y.sh
mnk
qrs
a.sh
b.sh
mno
qwe
我希望输出修改如下
Output-2
========
abc||x.sh
abc||y.sh
mnk
qrs||a.sh
qrs||b.sh
mno
qwe
我们可以使用awk实现吗?
实际上我有一些文字,我想找到找到这个文本的脚本。我能够实现它,但输出-1,但我希望它作为输出-2格式。我使用的代码如下
#!/bin/ksh
input_file=$1
dir_list=$2
while read dir_list; do
while read -r line; do
echo $line; grep -i $line /code/${dir_list}/scripts/*.sh|awk -F":" '{print $1}'|uniq;
done < ${input_file} > code_${dir_list}_scripts.txt
done < ${dir_list}
答案 0 :(得分:0)
LDFLAGS =
救援!
awk
命名法: awk -v OFS='||' '/\.sh/{print p, $0; pp=0; next}
pp {print p}
{p=$0; pp=1}
END {if(pp) print p}' file
abc||x.sh
abc||y.sh
mnk
qrs||a.sh
qrs||b.sh
mno
qwe
是存储以前的关键字,p
用于打印上一个关键字的标记。