如何使用awk/sed/perl/etc将注释移动到新文件。?
我想从SCSS文件中提取注释,将它们放在新的标记文件中,并从原始文件中删除注释 file.scss 问题如何使用awk/sed/perl/etc将注释移动到新文件。?,perl,awk,sed,extract,Perl,Awk,Sed,Extract,我想从SCSS文件中提取注释,将它们放在新的标记文件中,并从原始文件中删除注释 file.scss 问题 如何使用awk、perl、sed或其他工具来实现这一点?我自己实现了一个解决方案 #!/usr/bin/env bash # USAGE # ## Development # # # single file # bash ./scripts/extract-md.bash src/base/_typography.scss # # # all files #
如何使用
awk
、perl
、sed
或其他工具来实现这一点?我自己实现了一个解决方案
#!/usr/bin/env bash
# USAGE
# ## Development
#
# # single file
# bash ./scripts/extract-md.bash src/base/_typography.scss
#
# # all files
# bash ./scripts/extract-md.bash src/base/_typography.scss
#
# ## production (override files)
#
# export PRODUCTION=true
# bash ./scripts/extract-md.bash
shopt -s globstar
start() {
for legacy in $legacies; do
directory="${legacy%/*}"
filename="${legacy##*/}"
new_filename="${filename//.scss/.md}"
documentation="${directory}/${new_filename}"
extract_comment "$legacy" "$documentation"
stylesheet="${1//.scss/.new.scss}"
extract_code "$legacy" "$stylesheet"
[[ $PRODUCTION ]] && mv "$stylesheet" "$legacy"
done
}
extract_comment() {
local legacy="$1"
local documentation="$2"
awk '/^\/\*/{flag=1} flag; /^\s?\*\//{print;flag=0}' "$legacy" \
| perl -p -e 's/\/[\*]+//g' \
| perl -p -e 's/^\s*[\*]?[ \/]?//g' \
> "$documentation"
}
extract_code() {
local legacy="$1"
local stylesheet="$2"
awk 'BEGIN{flag=1}/^\/\*/{flag=0}; /^\s?\*\//{flag=1; next}flag' "$legacy" \
> "$stylesheet"
}
legacies=${1:-src/**/*.scss}
start $legacies
# Typography
* We use
[Roboto](https://fonts.google.com/specimen/Roboto)
Body typography:
`p`
@example
p This is a paragraph with #[strong bold ] and#[em italic ] styles.</p>
Heading 1:
`h1` `.h1`
body {
color: $base-font-color;
}
h1,
.h1 {
@include h1;
}
#!/usr/bin/env bash
# USAGE
# ## Development
#
# # single file
# bash ./scripts/extract-md.bash src/base/_typography.scss
#
# # all files
# bash ./scripts/extract-md.bash src/base/_typography.scss
#
# ## production (override files)
#
# export PRODUCTION=true
# bash ./scripts/extract-md.bash
shopt -s globstar
start() {
for legacy in $legacies; do
directory="${legacy%/*}"
filename="${legacy##*/}"
new_filename="${filename//.scss/.md}"
documentation="${directory}/${new_filename}"
extract_comment "$legacy" "$documentation"
stylesheet="${1//.scss/.new.scss}"
extract_code "$legacy" "$stylesheet"
[[ $PRODUCTION ]] && mv "$stylesheet" "$legacy"
done
}
extract_comment() {
local legacy="$1"
local documentation="$2"
awk '/^\/\*/{flag=1} flag; /^\s?\*\//{print;flag=0}' "$legacy" \
| perl -p -e 's/\/[\*]+//g' \
| perl -p -e 's/^\s*[\*]?[ \/]?//g' \
> "$documentation"
}
extract_code() {
local legacy="$1"
local stylesheet="$2"
awk 'BEGIN{flag=1}/^\/\*/{flag=0}; /^\s?\*\//{flag=1; next}flag' "$legacy" \
> "$stylesheet"
}
legacies=${1:-src/**/*.scss}
start $legacies