我试图使用 sed 替换大文件中的日期。我试过 :
sed -ie 's/2014-[0-9]{2}-[0-9]{2}/2014-05-07/g' test
Run Code Online (Sandbox Code Playgroud)
然而,什么也没发生,我的文件测试没有被修改。你知道我在这里缺少什么吗?
非常感谢。
我有这样的记录:
"evSchema"\1\"UAT" "evSN"\1\"uadb" "evDirsep"\1\"/" "evRootPath"\1\"/work_area/APP_UAT/" "evSchema"\1\"RMS13" "evUser"\1\"STAGE"
Run Code Online (Sandbox Code Playgroud)
我想\1\用新行替换。
我尝试使用sed它,但它不起作用。
有谁知道怎么做??
我有一个网站,其中一些代码被注入到大量的 php 文件中,由于文件数量的原因,手动删除它们是不可行的。
我可以从所有文件中注入的代码中搜索变量名称,它为我提供了受影响的列表,但我无法将实际代码放入搜索中,因为它包含双引号、单引号和所有类型的字符.
这是我用于搜索的内容:
grep -Ril "ljdcvhg" '路径到站点文件夹'
有没有办法搜索整个php函数/注入的代码并删除?请注意,我对 linux 很陌生。
我打算把黑客代码放在这里,但我不确定这是否允许。
任何帮助表示赞赏。
我在删除文本文件的第一个空格\s和第一个选项卡之间的字符串时遇到了一些麻烦\t(应该保留选项卡):
样本输入:
col1_frame1 unimportant a b c
Run Code Online (Sandbox Code Playgroud)
样本的预期输出:
col1_frame a b c
Run Code Online (Sandbox Code Playgroud)
我尝试过,sed 's/ .*\t/\t/'但输出错误:
我的样本输出(使用以前的 sed):
col1_frame c
Run Code Online (Sandbox Code Playgroud) 要将字符串 foo 的所有出现更改为 bar 在我使用的目录中的所有文件中
sed -i -- 's/foo/bar/g' *
Run Code Online (Sandbox Code Playgroud)
发现这里
但我也想将 NAME 更改为 name 等。我试过了,
sed -i -- 's/foo/bar/g' * ; sed -i -- 's/NAME/name/g' *
这会创建新文件。如何使用此命令重写原始文件,将 foo 替换为 bar 并将 NAME 替换为 name,然后再进行其他替换,而不创建新文件?
如何使用带有空格和单引号的递归目录和文件名进行快速文本替换?最好使用标准的 UNIX 工具,或者一个众所周知的包。
find对于许多文件,使用速度非常慢,因为它为每个文件生成一个新进程,因此我正在寻找一种将目录遍历和字符串替换集成为一个操作的方法。
慢搜索:
find . -name '*.txt' -exec grep foo {} \;
Run Code Online (Sandbox Code Playgroud)
快速搜索:
grep -lr --include=*.txt foo
Run Code Online (Sandbox Code Playgroud)
缓慢替换:
find . -name '*.txt' -exec perl -i -pe 's/foo/bar/' {} \;
Run Code Online (Sandbox Code Playgroud)
快速更换:
# Your suggestion here
Run Code Online (Sandbox Code Playgroud)
(这个速度相当快,但是是两次传递并且不处理空格。)
perl -p -i -e 's/foo/bar/g' `grep -lr --include=*.txt foo`
Run Code Online (Sandbox Code Playgroud) 我遇到了一个问题,无法找到解决以下问题的解决方案。
如果它们以特殊字符开头,我想将一行的第一个单词复制到以下 n 行的开头,否则复制新单词。
输入:
aaa random words
`dsf
|df
bbb
|d
Run Code Online (Sandbox Code Playgroud)
输出:
aaa random words
aaa`dsf
aaa|df
bbb
bbb|d
Run Code Online (Sandbox Code Playgroud) 我有这样的数据:
1_filename=$MYPATH/abcd/your_path/img.bin
2_filename=$MYPATH/cdef/jdskjdk/img2.bin
1_filesize=10mb
2_filesize=12mb
Run Code Online (Sandbox Code Playgroud)
我的预期输出是:
1_filename=img.bin
2_filename=img2.bin
1_filesize=10mb
2_filesize=12mb
Run Code Online (Sandbox Code Playgroud)
我如何使用sed命令实现这一目标?
我有这样的文件
d1000 1000
d1001 100
d1002 10
d1003 1
Run Code Online (Sandbox Code Playgroud)
我想修改长度不等于 4 的第二列。但我只想打印修改的行,因此第 2 列中的原始文本保留在 coulmn 2 中,更改打印在第三列中,并递增到一个数字。
期望的输出:
d1001 100 1101
d1002 10 1102
d1003 1 1103
Run Code Online (Sandbox Code Playgroud)
我正在尝试按照这些思路,但无法获得语法或结果
awk -v n=1100 '((length($2)!=4 && length($2)>0) {new=($2=++n)}; {print $1, $2, new}' file
Run Code Online (Sandbox Code Playgroud)