我想应用这个 sed 命令
sed '/begin 644/,$d' file1.txt > file1.txt
目录的所有文件..基本上我想保持相同的名称但在找到某个字符串后删除所有行..我如何调整这个sed命令以应用于所有文本(.txt ) 文件夹中的文件并保留其原始名称 ?
编辑:我正在使用 Mac OS X 我不知道 sed 命令是否有问题...
如果我尝试做
sed -i '/begin 644/,$d' *.txt
我收到错误 sed: 1: 替换命令中的错误标志:'x'
第二次编辑:Anu 的回答有效!
最佳答案
您可以将此find
与sed
一起使用:
find . -maxdepth 1 -name '*.txt' -exec sed -i.bak '/begin 644/,$d' {} +
或者如果你想保留 begin 644
:
find . -maxdepth 1 -name '*.txt' -exec sed -i.bak -n '1,/begin 644/p' {} +
关于bash - sed 命令 - 适用于文件夹的所有文本 (.txt) 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28615943/