对于想了解php–在它们的开头删除具有特定模式的行的读者,本文将是一篇不可错过的文章,我们将详细介绍php中用来删除当前目录的函数是,并且为您提供关于Ansible-从列表中删除具有特定键值的字典、b
对于想了解php – 在它们的开头删除具有特定模式的行的读者,本文将是一篇不可错过的文章,我们将详细介绍php中用来删除当前目录的函数是,并且为您提供关于Ansible - 从列表中删除具有特定键值的字典、bash – 如何将不以特定模式开头的行连接到UNIX中的上一行?、BASH:在名称中没有特定模式的目录中创建所有目录名称的数组、bash:在子文件夹中删除具有给定模式的文件的 IF 条件的有价值信息。
本文目录一览:- php – 在它们的开头删除具有特定模式的行(php中用来删除当前目录的函数是)
- Ansible - 从列表中删除具有特定键值的字典
- bash – 如何将不以特定模式开头的行连接到UNIX中的上一行?
- BASH:在名称中没有特定模式的目录中创建所有目录名称的数组
- bash:在子文件夹中删除具有给定模式的文件的 IF 条件
php – 在它们的开头删除具有特定模式的行(php中用来删除当前目录的函数是)
我有一个大约25,000行的文本文件.大约525kb.
有些行在开头有随机文本.
有些人用长串分号.
其他一些只有三个分号,然后在同一行上有一个空格和可选的更多文本.这些是我想要删除的行.
这是一个样本….
;;; Updated Time 20120706122706
;;; Generic DEveloper Output
;;; Some Random Comments
;;; I got some more...
;;; Yet another uneeded line
;;; Thanks for using StackOverflow <https://stackoverflow.com>, or...
;;; Not.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Banana Production
[Data_Release_Version]
Version=12586
Released=20120706122706
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Baseline Properties
[BaseLineProperties]
Comment=BaselineProperties
– – – 等等.
一旦它到达第一行4或更多;在线上,我需要文件的其余部分,因为没有“;;;”行.
如果它不匹配“;;;”,试图快速找到一些东西,而不是阅读所有内容并将其写回.
文件是ASCII(可能是UTF-8)文本类型文件.
有任何想法吗?
感谢您的时间,帮助和知识.
解决方法:
我建议使用file_get_contents()并将变量中的文件内容保存为字符串,然后在每个换行符中使用explode()字符串,然后在foreach循环中,使用preg_match()检查行是否以3个分号和一个空格,如果它有剂量,则把它放在另一个名为$output的数组中.在foreach之后,implode()$输出并添加换行符并使用file_put_contents()将其打印在另一个文件中.希望这可以帮助 :-)
码:
<?PHP
$string = file_get_contents($filename);
$array = explode("\n",$string);
foreach($array as $arr) {
if(!(preg_match("^;;;\s",$arr))) {
$output[] = $arr;
}
}
$out = implode("\n",$output);
file_put_contents($path,$out);
?>
Ansible - 从列表中删除具有特定键值的字典
JMESPath 适用于简单的问题,但很难解决复杂的问题,尤其是因为您的最终问题涉及选择性地构建一个新的“用户”字典(或改变 var,很难判断您的结果是什么) d 想要)。如果您希望原始数据发生变异,只需删除克隆用户字典的 | combine({})
- name: Filter users by group name
set_fact:
filtered_users: >-
{%- set results = [] -%}
{%- for ur in users -%}
{%- set u = ur | combine({}) -%}
{%- set g1 = u.groups | selectattr("name","eq",search_name) -%}
{%- if g1 | length > 0 -%}
{%- set _ = u.update({"groups": g1}) -%}
{%- set _ = results.append(u) -%}
{%- endif -%}
{%- endfor -%}
{{ results }}
bash – 如何将不以特定模式开头的行连接到UNIX中的上一行?
它可以用shell脚本中的循环完成,但我很难得到一个awk / sed一个衬垫.
SampleFile.txt
These are leaves. These are branches. These are greenery which gives oxygen,provides control over temperature and maintains cleans the air. These are tigers These are bears and deer and squirrels and other animals. These are something you want to kill Which will see you killed in the end. These are things you must to think to save your tomorrow.
期望的输出
These are leaves. These are branches. These are greenery which gives oxygen,provides control over temperature and maintains cleans the air. These are tigers These are bears and deer and squirrels and other animals. These are something you want to kill Which will see you killed in the end. These are things you must to think to save your tomorrow.
解决方法
awk 'BEGIN {accum_line = "";} /^These/{if(length(accum_line)){print accum_line; accum_line = "";}} {accum_line = accum_line " " $0;} END {if(length(accum_line)){print accum_line; }}' < data.txt
代码由三部分组成:
>标记为BEGIN的块先于其他任何操作执行.它对全局初始化很有用>标记为END的块在常规处理完成时执行.包装好东西很好.就像打印最后收集的数据一样,如果这行在开头没有这些(这种情况)>其余的是为每一行执行的代码.首先,搜索模式并完成相关的事情.其次,无论字符串内容如何,都会进行数据收集.
BASH:在名称中没有特定模式的目录中创建所有目录名称的数组
我正在考虑使用grep和ls,但我不确定如何将它放在一起.
解决方法
shopt -s nullglob dirs=( */ )
bash:在子文件夹中删除具有给定模式的文件的 IF 条件
您可以使用 shopt -s nullglob
,然后跳过测试并直接使用 rm -f "$d"/*filt*.csv
。 nullglob
选项确保不匹配任何内容的 glob 扩展为空字符串,而 -f
将使 rm
静音。
您也可以跳过外循环并简化所有内容
shopt -s nullglob
rm -f results/*filt*.csv
如果 glob 匹配的文件太多以至于超过了最大行长度,这个 可能就会失败。在这种情况下,您最好使用 find
:
find results -name '*filt*.csv' -exec rm {} +
或者,使用 GNU find
:
find results -name '*filt*.csv' -delete
如果有要跳过的子目录,请使用 -maxdepth 1
。如果存在与模式匹配的目录,请使用 -type f
。
我们今天的关于php – 在它们的开头删除具有特定模式的行和php中用来删除当前目录的函数是的分享就到这里,谢谢您的阅读,如果想了解更多关于Ansible - 从列表中删除具有特定键值的字典、bash – 如何将不以特定模式开头的行连接到UNIX中的上一行?、BASH:在名称中没有特定模式的目录中创建所有目录名称的数组、bash:在子文件夹中删除具有给定模式的文件的 IF 条件的相关信息,可以在本站进行搜索。
本文标签: