本文目录导读:

Python脚本实现
基础版本
def truncate_text(text, max_length=100, start_keep=30, end_keep=30):
"""
截取文本的首尾部分
Args:
text: 原始文本
max_length: 最大长度
start_keep: 保留开头字符数
end_keep: 保留结尾字符数
Returns:
截取后的文本
"""
if len(text) <= max_length:
return text
start = text[:start_keep]
end = text[-end_keep:]
return f"{start}...{end}"
# 使用示例
text = "这是一个很长的文本,需要截取首尾内容,中间的部分会被省略号替代。"
result = truncate_text(text, max_length=50)
print(result)
进阶版本(支持多语言)
import re
def smart_truncate(text, max_length=100, keep_ratio=0.7):
"""
智能截取,保留首尾指定比例的内容
Args:
text: 原始文本
max_length: 最大长度
keep_ratio: 保留内容的比例(0-1之间)
"""
if len(text) <= max_length:
return text
# 计算保留的字符数
keep_chars = int(max_length * keep_ratio)
start_keep = keep_chars // 2
end_keep = keep_chars - start_keep
start = text[:start_keep]
end = text[-end_keep:]
return f"{start}...{end}"
# 使用示例
text = "Python是一种广泛使用的解释型、高级通用编程语言"
result = smart_truncate(text, max_length=20)
print(result) # 输出: Python...语言
JavaScript实现
基础版本
function truncateText(text, maxLength = 100) {
if (text.length <= maxLength) {
return text;
}
const startKeep = Math.floor(maxLength * 0.6);
const endKeep = maxLength - startKeep;
const start = text.slice(0, startKeep);
const end = text.slice(-endKeep);
return `${start}...${end}`;
}
// 使用示例
const longText = "这是一段很长的文本内容,需要在中间部分进行截取";
const result = truncateText(longText, 20);
console.log(result);
浏览器控制台脚本
// 网页中提取特定元素的首尾内容
(function() {
const element = document.querySelector('body');
const text = element.textContent;
function truncateText(text, maxLen = 200) {
if (text.length <= maxLen) return text;
const keep = maxLen / 2;
return text.slice(0, keep) + '...' + text.slice(-keep);
}
console.log(truncateText(text));
})();
Shell脚本实现
Linux/Mac
#!/bin/bash
# 首尾截取函数
truncate_text() {
local text="$1"
local max_length="${2:-100}"
if [ ${#text} -le $max_length ]; then
echo "$text"
return
fi
local start_keep=$((max_length / 2))
local end_keep=$((max_length - start_keep))
local start="${text:0:$start_keep}"
local end="${text: -$end_keep}"
echo "${start}...${end}"
}
# 使用示例
text="这是一个测试文本,用于演示Shell脚本中的首尾截取功能"
truncate_text "$text" 30
高级功能脚本
带日志和参数配置的完整脚本
#!/usr/bin/env python3
"""截取工具
支持多种模式和配置
"""
import argparse
import logging
class TextTruncator:
def __init__(self, start_marker="", end_marker=""):
self.start_marker = start_marker
self.end_marker = end_marker
self.logger = logging.getLogger(__name__)
def truncate(self, text, max_length=100, mode='chars'):
"""
多种截取模式
Args:
text: 输入文本
max_length: 最大长度
mode: 'chars'(字符), 'words'(单词), 'lines'(行)
"""
if mode == 'chars':
return self._truncate_chars(text, max_length)
elif mode == 'words':
return self._truncate_words(text, max_length)
elif mode == 'lines':
return self._truncate_lines(text, max_length)
def _truncate_chars(self, text, max_length):
if len(text) <= max_length:
return text
start_keep = max_length // 2
end_keep = max_length - start_keep
result = text[:start_keep] + "... " + text[-end_keep:]
self.logger.info(f"文本从 {len(text)} 字符截取到 {max_length} 字符")
return result
def _truncate_words(self, text, max_words):
words = text.split()
if len(words) <= max_words:
return text
start_keep = max_words // 2
end_keep = max_words - start_keep
return " ".join(words[:start_keep]) + "... " + " ".join(words[-end_keep:])
def _truncate_lines(self, text, max_lines):
lines = text.split('\n')
if len(lines) <= max_lines:
return text
start_keep = max_lines // 2
end_keep = max_lines - start_keep
return "\n".join(lines[:start_keep]) + "\n...\n" + "\n".join(lines[-end_keep:])
# 命令行接口
def main():
parser = argparse.ArgumentParser(description='首尾内容截取工具')
parser.add_argument('text', help='要截取的文本')
parser.add_argument('-m', '--max', type=int, default=100, help='最大长度')
parser.add_argument('--mode', choices=['chars', 'words', 'lines'],
default='chars', help='截取模式')
args = parser.parse_args()
truncator = TextTruncator()
result = truncator.truncate(args.text, args.max, args.mode)
print(result)
if __name__ == "__main__":
# 直接使用示例
truncator = TextTruncator()
text = "这是一个示例文本,用于演示首尾截取功能,Python是一种强大的编程语言。"
print(truncator.truncate(text, 20))
# 作为命令行工具使用
# main()
使用案例
截取
// 在浏览器控制台中运行
const pageText = document.body.innerText;
const truncated = truncateText(pageText, 500);
console.log('页面内容(截取后):', truncated);
日志文件处理
#!/bin/bash # 处理日志文件的首尾内容 log_file="/var/log/system.log" head_lines=5 tail_lines=5 echo "===== 日志开头 =====" head -n $head_lines "$log_file" echo "===== 日志结尾 =====" tail -n $tail_lines "$log_file"
选择建议:
- 文本处理:使用Python脚本,功能最强大
- 网页开发:使用JavaScript版本
- 命令行操作:使用Shell脚本
- 复杂场景:使用带参数配置的高级版本
这些脚本可以根据具体需求调整参数,实现灵活的首尾内容截取。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播