Laz*_*zer 63 unix awk grep sed
我有一个看起来像这样的文件:
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
Run Code Online (Sandbox Code Playgroud)
我希望它看起来像这样(删除缩进):
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
Run Code Online (Sandbox Code Playgroud)
怎么做(sed可能使用?)
shu*_*lov 114
sed "s/^[ \t]*//" -i youfile
Run Code Online (Sandbox Code Playgroud)
警告:这将覆盖原始文件.
Bry*_*ley 26
对于这个特定问题,这样的事情会起作用:
$ sed 's/^ *//g' < input.txt > output.txt
Run Code Online (Sandbox Code Playgroud)
它说要在一行的开头替换所有空格.如果您还想删除标签,请将其更改为:
$ sed 's/^[ \t]+//g' < input.txt > output.txt
Run Code Online (Sandbox Code Playgroud)
在/之前的领先"s"意味着"替代"./是模式的分隔符.前两个之间的数据是要匹配的模式,第二个和第三个之间的数据是要替换它的数据.在这种情况下,你将一无所获.最后斜杠之后的"g"意味着"全局"地执行它,即:在整个文件上而不是仅在它找到的第一个匹配上.
最后,< input.txt > output.txt您可以使用-i选项来"代替"编辑文件.这意味着,您无需创建第二个文件来包含结果.如果使用此选项,您将丢失原始文件.
gho*_*g74 13
你可以使用awk
$ awk '{$1=$1}1' file
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
Run Code Online (Sandbox Code Playgroud)
SED
$ sed 's|^[[:blank:]]*||g' file
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
for (i = 0; i < 100; i++)
Run Code Online (Sandbox Code Playgroud)
shell的while/read循环
while read -r line
do
echo $line
done <"file"
Run Code Online (Sandbox Code Playgroud)
此Perl代码编辑您的原始文件:
perl -i -ne 's/^\s+//;print' file
Run Code Online (Sandbox Code Playgroud)
下一个在编辑原始文件之前制作备份副本:
perl -i.bak -ne 's/^\s+//;print' file
Run Code Online (Sandbox Code Playgroud)
请注意,Perl从sed(和awk)中大量借用
| 归档时间: |
|
| 查看次数: |
124223 次 |
| 最近记录: |