我正在尝试删除文件中特定模式之后的所有行。
我有很多文件,它们都具有相同的结构:
示例:
文件1
第1行 ... 第x行“这里有一个特定的模式” ... EOF
... ...
file n
第1行 ... 第x行“这里有一个特定的模式” ... EOF
我试图找到一个简单的解决方案,但由于我有很多文件,所以我还有很长的路要走:p
模式在每个文件中出现一次。
所以,我得到了包含这个模式的所有行号,并保存在一个文件中。
这是我的代码:
layout(binding = 0) buffer matrixBuffer {
vec4 matrixABC[];
};
PATTERN_line.txt中的每一行都包含每个文件中存在模式的行号。
现在,我正在尝试使用这些数字删除Pattern之后的所有行到文件结尾。 这意味着,我需要保留文件,从头部到包含的图案线。
感谢您的帮助
答案 0 :(得分:0)
你可以使用下面的sed命令,也可以在脚本中阅读我的评论,了解它是如何工作的: -
#list all the files in a temporary file
cd /path_to_folder/
ls -1 *.txt > list_of_files.txt
#now read each file from the temp file
while read file
do
#redirect the output to a temporary file
sed -n '/here there is a specific pattern/q;p' "$file" > temp.txt
#sed -n '/here there is a specific pattern/p' "$file" >> temp.txt
#uncomment the above line if your want to including the line match as well
mv temp.txt "$file"
#change the file name
done < list_of_files.txt
rm -rf list_of_files.txt