分別命名爲文件名在我的目錄中我有很多的*.yml
文件命名,如:插入dirnames中成在bash
work-arran.yml
work-cap.yml
work-exposed.yml
work-humax.yml
work-instruc.yml
work-kiln.yml
work-lex.yml
work-merc.yml
,也有相同的名字目錄,但用下劃線代替破折號:
work_cap
work_exposed
work_humax
work_instruc
work_kiln
work_lex
work_merc
我想將yaml記錄grid_pool: dir_name_here
自動分配到每個 *.yml
文件中,其中dir_name_here將是每個 文件各自目錄的名稱。
試過這個,雖然它可以工作,但它會在 * .yml文件的下劃線版本中添加所需的行,而不是虛線。
如何更改最後的fn.yml
因此它將_
替換爲-
?
ls *.yml | sed 's/-/_/g' | sed 's/.yml//g' | xargs -n1 -I fn bash -c "echo ' grid_pool: fn' >> fn.yml"
[你不應該在腳本中使用'ls'。](http://mywiki.wooledge.org/ParsingLs) – tripleee
這只是一次oneliner – branquito
不過,'ls * .yml'中的'ls'是毫無意義的; shell會擴展通配符,'ls'在shell已經生成匹配列表之後不會添加任何值(並且可能會添加負值的東西)。鏈接解釋了所有可能出錯的事情。 – tripleee