如何使用bash从多个文件的第一行中删除前n个字符?

时间:2019-05-22 15:20:05

标签: bash sed

我有大量出口。所有文件都具有相同的结构。我需要从同一目录中每个文件的第一行中删除前15个字符。

我尝试了这部分,但这从每行中删除了前15个字符:

#!/bin/bash

for file in *.json
do
    sed 's/^.\{15\}//' "$file" > "$file".new
    mv "$file".new "$file"
done

该行如下所示:

  "dashboard": {

,我希望该行以{开头。

1 个答案:

答案 0 :(得分:0)

尝试一下:

#!/bin/bash
for file in ./*.json; do
   sed -i '1s/.*/{/' "$file"
done

说明

# loop over all *.json files in current directory 
for file in ./*.json; do

   # -i use inplace replacement
   # replace first line with '{'
   sed -i '1s/.*/{/' "$file"
done