抱歉,如果这已经被覆盖了。我找不到合适的。
如果我有一个文本文件的可变长度字段,我如何截断一个字段而不牺牲其他字段?一个例子;
firstField secondfieldisthislong thirdField
firstField secondfieldisreallylongandgoesonforever thirdField
firstField secondshortfield thirdField
我想截断第二个字段到固定长度。切似乎不能做到这一点,我的awk/sed技能不是很好。谢谢。
与awk
:
awk '{$2 = substr($2, 1, 10)}; 1' file.txt
将10
替换为您想要的字符长度
在这里,我们正在重建记录,将第二个字段截断为所需的长度。
substr($2, offset, length)
将执行字符串切片,从offset
到length
字符。
例子:
% cat file.txt
firstField secondfieldisthislong thirdField
firstField secondfieldisreallylongandgoesonforever thirdField
firstField secondshortfield thirdField
% awk '{$2 = substr($2, 1, 6)}; 1' file.txt
firstField second thirdField
firstField second thirdField
firstField second thirdField
% awk '{$2 = substr($2, 1, 10)}; 1' file.txt
firstField secondfiel thirdField
firstField secondfiel thirdField
firstField secondshor thirdField
使用GNU sed:
$ sed -r 's/(.* .{6}).* /1 /' <<< "firstField secondfieldisreallylongandgoesonforever thirdField"
firstField second thirdField