如何缩进文件(例如第一行)?
例子:
一个文件包含
x=1+2+3+4+
5+6+7+8
+9+10+12
应转换为
x=1+2+3+4+
5+6+7+8
+9+10+12
我需要在 Linux 系统上的 shell 脚本中使用它。单衬是优选的。
答案1
一种使用方法perl
:
perl -pe 'if ($. == 1) { m/^(\s*)/; $space = $1 || q{}; next } s/^\s*/$space/' infile
它产生:
x=1+2+3+4+
5+6+7+8
+9+10+12
答案2
您可以在 awk 中执行此操作:
awk 'NR==1{split($0,a,/[^ \t]/)}{sub(/^[ \t]*/,a[1]);print}' file.in
答案3
使用 sed:
sed -e '1{h;s/[^[:blank:]].*//;x;b' -e '}' -e 'G;s/[[:blank:]]*\(.*\)\n\(.*\)/\2\1/'